Built with Alectryon, running Coq+SerAPI v8.15.0+0.15.0. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "_ + _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ - _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ <= _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ < _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ >= _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ > _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ <= _ <= _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ < _ <= _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ <= _ < _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ < _ < _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "_ * _" was already used in scope nat_scope. [notation-overridden,parsing]
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
(** Throughout this file, we assume ideal uni-processor schedules. *)
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ : _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ & _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ | _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
Notation "[ rel _ _ in _ ]" was already used in scope fun_scope. [notation-overridden,parsing]
(** * JLFP instantiation of Interference and Interfering Workload for ideal uni-processor. *) (** In this module we instantiate functions Interference and Interfering Workload for an arbitrary JLFP-policy that satisfies the sequential tasks hypothesis. We also prove equivalence of Interference and Interfering Workload to the more conventional notions of service or workload. *) Section JLFPInstantiation. (** Consider any type of tasks ... *) Context {Task : TaskType}. Context `{TaskCost Task}. (** ... and any type of jobs associated with these tasks. *) Context {Job : JobType}. Context `{JobTask Job Task}. Context `{JobArrival Job}. Context `{JobCost Job}. (** Consider any arrival sequence with consistent arrivals. *) Variable arr_seq : arrival_sequence Job. Hypothesis H_arrival_times_are_consistent : consistent_arrival_times arr_seq. Hypothesis H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq. (** Next, consider any ideal uni-processor schedule of this arrival sequence ... *) Variable sched : schedule (ideal.processor_state Job). Hypothesis H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq. (** ... where jobs do not execute before their arrival or after completion. *) Hypothesis H_jobs_must_arrive_to_execute : jobs_must_arrive_to_execute sched. Hypothesis H_completed_jobs_dont_execute : completed_jobs_dont_execute sched. (** Assume we have sequential tasks, i.e., jobs of the same task execute in the order of their arrival. *) Hypothesis H_sequential_tasks : sequential_tasks arr_seq sched. (** Consider a JLFP-policy that indicates a higher-or-equal priority relation, and assume that this relation is reflexive and transitive. *) Context `{JLFP_policy Job}. Hypothesis H_priority_is_reflexive : reflexive_priorities. Hypothesis H_priority_is_transitive : transitive_priorities. (** We also assume that the policy respects sequential tasks, meaning that later-arrived jobs of a task don't have higher priority than earlier-arrived jobs of the same task. *) Hypothesis H_JLFP_respects_sequential_tasks : policy_respects_sequential_tasks. (** Let [tsk] be any task to be analyzed. *) Variable tsk : Task. (** For simplicity, let's define some local names. *) Let job_scheduled_at := scheduled_at sched. Let job_completed_by := completed_by sched. Let arrivals_between := arrivals_between arr_seq. Let cumulative_task_interference := cumul_task_interference arr_seq sched. (** ** Interference and Interfering Workload *) (** In this section, we introduce definitions of interference, interfering workload, and a function that bounds cumulative interference. *) (** For proper calculation of interference and interfering workload of a job, we need to distinguish interference received from other jobs of the same task and jobs of other tasks. In that regard, we introduce two additional relations. The first relation defines whether job [j1] has a higher-than-or-equal-priority than job [j2] and [j1] is not equal to [j2]... *) Let another_hep_job: JLFP_policy Job := fun j1 j2 => hep_job j1 j2 && (j1 != j2). (** ...and the second relation defines whether a job [j1] has a higher-or-equal-priority than job [j2] and the task of [j1] is not equal to task of [j2]. *) Let hep_job_from_another_task: JLFP_policy Job := fun j1 j2 => hep_job j1 j2 && (job_task j1 != job_task j2). (** In order to introduce the interference, first we need to recall the definition of priority inversion introduced in module analysis.definitions.priority_inversion: [ Definition is_priority_inversion t := ] [ if sched t is Some jlp then ] [ ~~ higher_eq_priority jlp j ] [ else false. ] I.e., we say that job [j] is incurring a priority inversion at time [t] if there exists a job with lower priority that executes at time [t]. In order to simplify things, we ignore the fact that according to this definition a job can incur priority inversion even before its release (or after completion). All such (potentially bad) cases do not cause problems, as each job is analyzed only within the corresponding busy interval where the priority inversion behaves in the expected way. *) Let is_priority_inversion (j : Job) (t : instant) := is_priority_inversion sched j t. (** Next, we say that job [j] is incurring interference from another job with higher or equal priority at time [t], if there exists a job [jhp] (different from [j]) with higher or equal priority that executes at time [t]. *) Definition is_interference_from_another_hep_job (j : Job) (t : instant) := if sched t is Some jhp then another_hep_job jhp j else false. (** Similarly, we say that job [j] is incurring interference from a job with higher or equal priority of another task at time [t], if there exists a job [jhp] (of a different task) with higher or equal priority that executes at time [t]. *) Definition is_interference_from_hep_job_from_another_task (j : Job) (t : instant) := if sched t is Some jhp then hep_job_from_another_task jhp j else false. (** Now, we define the notion of cumulative interference, called [interfering_workload_of_hep_jobs], that says how many units of workload are generated by jobs with higher or equal priority released at time [t]. *) Definition interfering_workload_of_hep_jobs (j : Job) (t : instant) := \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp. (** Instantiation of Interference *) (** We say that job [j] incurs interference at time [t] iff it cannot execute due to a higher-or-equal-priority job being scheduled, or if it incurs a priority inversion. *) Definition interference (j : Job) (t : instant) := is_priority_inversion j t || is_interference_from_another_hep_job j t. (** Instantiation of Interfering Workload *) (** The interfering workload, in turn, is defined as the sum of the priority inversion function and interfering workload of jobs with higher or equal priority. *) Definition interfering_workload (j : Job) (t : instant) := is_priority_inversion j t + interfering_workload_of_hep_jobs j t. (** For each of the concepts defined above, we introduce a corresponding cumulative function: *) (** (a) cumulative priority inversion... *) Definition cumulative_priority_inversion (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) is_priority_inversion j t. (** ... (b) cumulative interference from other jobs with higher or equal priority... *) Let cumulative_interference_from_other_hep_jobs (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t. (** ... (c) and cumulative interference from jobs with higher or equal priority from other tasks... *) Definition cumulative_interference_from_hep_jobs_from_other_tasks (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) is_interference_from_hep_job_from_another_task j t. (** ... (d) cumulative interference... *) Let cumulative_interference (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) interference j t. (** ... (e) cumulative workload from jobs with higher or equal priority... *) Let cumulative_interfering_workload_of_hep_jobs (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t. (** ... (f) and cumulative interfering workload. *) Let cumulative_interfering_workload (j : Job) (t1 t2 : instant) := \sum_(t1 <= t < t2) interfering_workload j t. (** Instantiated functions usually do not have any useful lemmas about them. In order to reuse existing lemmas, we need to prove equivalence of the instantiated functions to some conventional notions. The instantiations given in this file are equivalent to service and workload. Further, we prove these equivalences formally. *) (** Before we present the formal proofs of the equivalences, we recall the notion of workload of higher or equal priority jobs. *) Let workload_of_other_hep_jobs (j : Job) (t1 t2 : instant) := workload_of_jobs (fun jhp => another_hep_job jhp j) (arrivals_between t1 t2). (** Similarly, we recall notions of service of higher or equal priority jobs from other tasks... *) Let service_of_hep_jobs_from_other_tasks (j : Job) (t1 t2 : instant) := service_of_jobs sched (fun jhp => hep_job_from_another_task jhp j) (arrivals_between t1 t2) t1 t2. (** ... and service of all other jobs with higher or equal priority. *) Let service_of_other_hep_jobs (j : Job) (t1 t2 : instant) := service_of_jobs sched (fun jhp => another_hep_job jhp j) (arrivals_between t1 t2) t1 t2. (** ** Equivalences *) (** In this section we prove a few equivalences between the definitions obtained by instantiation of definitions from the Abstract RTA module (interference and interfering workload) and definitions corresponding to the conventional concepts. As it was mentioned previously, instantiated functions of interference and interfering workload usually do not have any useful lemmas about them. However, it is possible to prove their equivalence to the more conventional notions like service or workload. Next we prove the equivalence between the instantiations and conventional notions. *) Section Equivalences. (** We prove that we can split cumulative interference into two parts: (1) cumulative priority inversion and (2) cumulative interference from jobs with higher or equal priority. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 t2 : instant), cumulative_interference j t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 t2 : instant), cumulative_interference j t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) (is_priority_inversion j t || is_interference_from_another_hep_job j t) = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant

\sum_(t1 <= t < t2) (is_priority_inversion j t || is_interference_from_another_hep_job j t) = \sum_(t1 <= i < t2) (is_priority_inversion j i + is_interference_from_another_hep_job j i)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant

forall i : nat, true -> is_priority_inversion j i || is_interference_from_another_hep_job j i <= is_priority_inversion j i + is_interference_from_another_hep_job j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
forall i : nat, true -> is_priority_inversion j i + is_interference_from_another_hep_job j i <= is_priority_inversion j i || is_interference_from_another_hep_job j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant

forall i : nat, true -> is_priority_inversion j i || is_interference_from_another_hep_job j i <= is_priority_inversion j i + is_interference_from_another_hep_job j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
MM: hep_job s j = true

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
MM: hep_job s j = false
match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_another_hep_job j t
all: by move: Sched_s; rewrite scheduled_at_def; move => /eqP EQ; rewrite EQ MM.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant

forall i : nat, true -> is_priority_inversion j i + is_interference_from_another_hep_job j i <= is_priority_inversion j i || is_interference_from_another_hep_job j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant

forall i : nat, true -> is_priority_inversion j i + is_interference_from_another_hep_job j i <= is_priority_inversion j i || is_interference_from_another_hep_job j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => another_hep_job jhp j | None => false end <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => another_hep_job jhp j | None => false end <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = true

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1, t2: instant
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => hep_job jhp j && (jhp != j) | None => false end
all: by move: Sched_s; rewrite scheduled_at_def; move => /eqP EQ; rewrite EQ HP. } Qed. (** Let [j] be any job of task [tsk], and let [upp_t] be any time instant after job [j]'s arrival. Then for any time interval lying before [upp_t], the cumulative interference received by [tsk] is equal to the sum of the cumulative priority inversion of job [j] and the cumulative interference incurred by task [tsk] due to other tasks. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 : nat) (t2 upp_t : instant), arrives_in arr_seq j -> job_of_task tsk j -> j \in arrivals_before arr_seq upp_t -> ~~ job_completed_by j t2 -> cumulative_task_interference interference tsk upp_t t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_hep_jobs_from_other_tasks j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 : nat) (t2 upp_t : instant), arrives_in arr_seq j -> job_of_task tsk j -> j \in arrivals_before arr_seq upp_t -> ~~ job_completed_by j t2 -> cumulative_task_interference interference tsk upp_t t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_hep_jobs_from_other_tasks j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat

forall (j : Job) (t1 : nat) (t2 upp_t : instant), arrives_in arr_seq j -> job_of_task tsk j -> j \in arrivals_before arr_seq upp_t -> ~~ job_completed_by j t2 -> \sum_(t1 <= t < t2) task_interference_received_before arr_seq sched interference tsk upp_t t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_hep_jobs_from_other_tasks j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= t < R) task_interference_received_before arr_seq sched interference tsk upp t = cumulative_priority_inversion j t1 R + cumulative_interference_from_hep_jobs_from_other_tasks j t1 R
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched interference tsk upp i = \sum_(t1 <= i < R | (t1 <= i < R) && true) (is_priority_inversion j i + is_interference_from_hep_job_from_another_task j i)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched interference tsk upp i <= \sum_(t1 <= i < R | (t1 <= i < R) && true) (is_priority_inversion j i + is_interference_from_hep_job_from_another_task j i)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (is_priority_inversion j i + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched interference tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i <= \sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i <= \sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat

task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp t <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat

~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end) (task_arrivals_before arr_seq tsk upp) <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0

~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end) (task_arrivals_before arr_seq tsk upp) <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = true

~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end) (task_arrivals_before arr_seq tsk upp) <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || match sched t with | Some jhp => another_hep_job jhp j | None => false end) (task_arrivals_before arr_seq tsk upp) <= match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = true
EQ: sched t = Some s

(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ true + true && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
EQ: sched t = Some s
(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ false + false && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = true
EQ: sched t = Some s

(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ true + true && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
EQ: sched t = Some s
(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ false + false && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = true
EQ: sched t = Some s

(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= true && (job_task s != tsk)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
EQ: sched t = Some s
(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ false + false && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
EQ: sched t = Some s

(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ false + false && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
s: Job
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
HP: hep_job s j = false
EQ: sched t = Some s

(job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || another_hep_job s j) (task_arrivals_before arr_seq tsk upp) <= ~~ false + false && (job_task s != job_task j)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk

\sum_(t1 <= i < R | (t1 <= i < R) && true) (match sched i with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j i) <= \sum_(t1 <= i < R | (t1 <= i < R) && true) task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + is_interference_from_hep_job_from_another_task j t <= task_interference_received_before arr_seq sched (fun (j : Job) (t : instant) => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) tsk upp t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end <= ~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq tsk upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0

match sched t with | Some jlp => ~~ hep_job jlp j | None => false end + match sched t with | Some jhp => hep_job jhp j && (job_task jhp != job_task j) | None => false end <= ~~ match sched t with | Some j => job_task j == tsk | None => false end && has (fun j : Job => match sched t with | Some jlp => ~~ hep_job jlp j | None => false end || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq tsk upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s

~~ hep_job s j + hep_job s j && (job_task s != job_task j) <= (job_task s != tsk) && has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq tsk upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true

~~ hep_job s j + hep_job s j && false <= 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true

~~ hep_job s j + hep_job s j && false <= 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true

~~ ~~ hep_job s j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true
NEQ: ~~ hep_job s j

job_completed_by j R
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true
NEQ: ~~ hep_job s j

completed_by sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true
NEQ: ~~ hep_job s j
NCOMPL: ~~ completed_by sched j t

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = true
NCOMPL: ~~ completed_by sched j t

job_arrival s <= job_arrival j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false

~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false

~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false

s != j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false

s != j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
EQ2: s = j

False
by move: TSKEQ => /eqP TSKEQ; apply: TSKEQ; rewrite EQ2.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
Fact: forall b : bool, ~~ b + b = true

~~ hep_job s j + hep_job s j && true <= has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

has (fun j : Job => ~~ hep_job s j || is_interference_from_another_hep_job j t) (task_arrivals_before arr_seq (job_task j) upp)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

j \in task_arrivals_before arr_seq (job_task j) upp
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
~~ hep_job s j || is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

j \in task_arrivals_before arr_seq (job_task j) upp
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
~~ hep_job s j || is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

j \in arrival_sequence.arrivals_between arr_seq 0 upp
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
~~ hep_job s j || is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

~~ hep_job s j || is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j

~~ hep_job s j || is_interference_from_another_hep_job j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
j: Job
t1: nat
R, upp: instant
ARRin: arrives_in arr_seq j
ARR: j \in arrivals_before arr_seq upp
NCOMPL: ~~ job_completed_by j R
TSK: job_task j = tsk
t: nat
LT': t < R
s: Job
Sched_s: scheduled_at sched s t
EqSched_s: #|[pred x | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on s (sched t) x) x x in F]| <> 0
EQ: sched t = Some s
TSKEQ: (job_task s == job_task j) = false
NEQ: s != j
HP: hep_job s j = true

is_interference_from_another_hep_job j t
by rewrite /is_interference_from_another_hep_job EQ /another_hep_job NEQ Bool.andb_true_r. Qed. (** In this section we prove that the (abstract) cumulative interfering workload is equivalent to conventional workload, i.e., the one defined with concrete schedule parameters. *) Section InstantiatedWorkloadEquivalence. (** Let <<[t1,t2)>> be any time interval. *) Variables t1 t2 : instant. (** Consider any job [j] of [tsk]. *) Variable j : Job. Hypothesis H_j_arrives : arrives_in arr_seq j. Hypothesis H_job_of_tsk : job_of_task tsk j. (** Then for any job [j], the cumulative interfering workload is equal to the conventional workload. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

cumulative_interfering_workload_of_hep_jobs j t1 t2 = workload_of_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

cumulative_interfering_workload_of_hep_jobs j t1 t2 = workload_of_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

cumulative_interfering_workload_of_hep_jobs j t1 t2 = workload_of_other_hep_jobs j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = false

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = true
\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = false

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: t2 <= t1

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: t2 <= t1

0 = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: t2 <= t1

0 = workload_of_jobs (another_hep_job^~ j) [::]
by rewrite /workload_of_jobs big_nil.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = true

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = true

\sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1, t2: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
NEQ: (t1 < t2) = true

\sum_(t1 <= t < t2) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 t2 | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat

\sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

\sum_(t1 <= t < t1 + 0) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + 0) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

\sum_(t1 <= t < t1 + 0) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + 0) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

\sum_(t1 <= t < t1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 t1 | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

0 = \sum_(j0 <- arrivals_between t1 t1 | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j

0 = \sum_(j0 <- [::] | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0
\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0

\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0

\sum_(t1 <= t < t1 + k.+1) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k.+1) | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0

\sum_(t1 <= i < t1 + k) \sum_(jhp <- arrivals_at arr_seq i | another_hep_job jhp j) job_cost jhp + \sum_(jhp <- arrivals_at arr_seq (t1 + k) | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k).+1 | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0

\sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0 + \sum_(jhp <- arrivals_at arr_seq (t1 + k) | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k).+1 | another_hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
t1: instant
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
k: nat
IHk: \sum_(t1 <= t < t1 + k) \sum_(jhp <- arrivals_at arr_seq t | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- arrivals_between t1 (t1 + k) | another_hep_job j0 j) job_cost j0

\sum_(j0 <- \cat_(t1<=t<t1 + k)arrivals_at arr_seq t | another_hep_job j0 j) job_cost j0 + \sum_(jhp <- arrivals_at arr_seq (t1 + k) | another_hep_job jhp j) job_cost jhp = \sum_(j0 <- (\cat_(t1<=i<t1 + k)arrivals_at arr_seq i ++ arrivals_at arr_seq (t1 + k)) | another_hep_job j0 j) job_cost j0
by rewrite big_cat //=. } Qed. End InstantiatedWorkloadEquivalence. (** In order to avoid confusion, we denote the notion of a quiet time in the _classical_ sense as [quiet_time_cl], and the notion of quiet time in the _abstract_ sense as [quiet_time_ab]. *) Let quiet_time_cl := busy_interval.quiet_time arr_seq sched. Let quiet_time_ab := definitions.quiet_time sched interference interfering_workload. (** Same for the two notions of a busy interval. *) Let busy_interval_cl := busy_interval.busy_interval arr_seq sched. Let busy_interval_ab := definitions.busy_interval sched interference interfering_workload. (** In this section we prove that the (abstract) cumulative interference of jobs with higher or equal priority is equal to total service of jobs with higher or equal priority. *) Section InstantiatedServiceEquivalences. (** Consider any job [j] of [tsk]. *) Variable j : Job. Hypothesis H_j_arrives : arrives_in arr_seq j. Hypothesis H_job_of_tsk : job_of_task tsk j. (** We consider an arbitrary time interval <<[t1, t)>> that starts with a quiet time. *) Variable t1 t : instant. Hypothesis H_quiet_time : quiet_time_cl j t1. (** Then for any job j, the (abstract) instantiated function of interference is equal to the total service of jobs with higher or equal priority. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_other_hep_jobs j t1 t = service_of_other_hep_jobs j t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_other_hep_jobs j t1 t = service_of_other_hep_jobs j t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_other_hep_jobs j t1 t = \sum_(j0 <- arrivals_between t1 t | another_hep_job j0 j) service_during sched j0 t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= t < t) match sched t with | Some jhp => another_hep_job jhp j | None => false end = \sum_(j0 <- arrivals_between t1 t | another_hep_job j0 j) service_during sched j0 t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => another_hep_job jhp j | None => false end = \sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | another_hep_job i0 j) service_at sched i0 i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => another_hep_job jhp j | None => false end <= \sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | another_hep_job i0 j) service_at sched i0 i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
\sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | another_hep_job i0 j) service_at sched i0 i <= \sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

match sched x with | Some jhp => another_hep_job jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
\sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x <= match sched x with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

match sched x with | Some jhp => another_hep_job jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0

match sched x with | Some jhp => another_hep_job jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo

another_hep_job jo j <= \sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

true <= \sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

jo \in arrivals_between t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

scheduled_at sched jo x -> False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

~~ scheduled_at sched jo x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

completed_by sched jo x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

completed_by sched jo t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: jo != j
AB: job_arrival jo < t1

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

job_arrival jo < t
by apply leq_ltn_trans with x; [apply H_jobs_must_arrive_to_execute | done].
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x <= match sched x with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | another_hep_job i j) service_at sched i x <= match sched x with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (fun i0 : Job => nat_of_bool (sched x == Some i0)) i <= match sched x with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= match sched x with | Some jhp => another_hep_job jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= another_hep_job jo j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

?n <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= ?n
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

?n <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= ?n
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= \sum_(j0 <- arrivals_between t1 t | ?p j0) service_at sched j0 x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (sched x == Some i) <= \sum_(j0 <- arrivals_between t1 t | ?p j0) service_at sched j0 x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
i: Job

(sched x == Some i) <= service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false

\sum_(i <- arrivals_between t1 t | another_hep_job i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
joo: Job
PRIO2: another_hep_job joo j

(Some jo == Some joo) = 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
joo: Job
PRIO2: another_hep_job joo j
C: Some jo = Some joo

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: another_hep_job jo j = false
PRIO2: another_hep_job jo j

False
by rewrite PRIO2 in PRIO. } Qed. (** The same applies to the alternative definition of interference. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_hep_jobs_from_other_tasks j t1 t = service_of_hep_jobs_from_other_tasks j t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_hep_jobs_from_other_tasks j t1 t = service_of_hep_jobs_from_other_tasks j t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

cumulative_interference_from_hep_jobs_from_other_tasks j t1 t = \sum_(j0 <- arrivals_between t1 t | hep_job_from_another_task j0 j) service_during sched j0 t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= t < t) match sched t with | Some jhp => hep_job_from_another_task jhp j | None => false end = \sum_(j0 <- arrivals_between t1 t | hep_job_from_another_task j0 j) service_during sched j0 t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => hep_job_from_another_task jhp j | None => false end = \sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | hep_job_from_another_task i0 j) service_at sched i0 i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1

\sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => hep_job_from_another_task jhp j | None => false end <= \sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | hep_job_from_another_task i0 j) service_at sched i0 i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
\sum_(t1 <= i < t | (t1 <= i < t) && true) \sum_(i0 <- arrivals_between t1 t | hep_job_from_another_task i0 j) service_at sched i0 i <= \sum_(t1 <= i < t | (t1 <= i < t) && true) match sched i with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x <= match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0

match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end <= \sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo

hep_job_from_another_task jo j <= \sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

true <= \sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

jo \in arrivals_between t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

arrived_between jo t1 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j

t1 <= job_arrival jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

scheduled_at sched jo x -> False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

~~ scheduled_at sched jo x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

completed_by sched jo x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

completed_by sched jo t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO1: hep_job jo j
PRIO2: job_task jo != job_task j
AB: job_arrival jo < t1

arrives_in arr_seq jo
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

job_arrival jo < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

job_arrival jo < t
by apply leq_ltn_trans with x; [apply H_jobs_must_arrive_to_execute | done].
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x <= match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) service_at sched i x <= match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (fun i0 : Job => nat_of_bool (sched x == Some i0)) i <= match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= match sched x with | Some jhp => hep_job_from_another_task jhp j | None => false end
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= hep_job_from_another_task jo j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

?n <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= ?n
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

?n <= true
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= ?n
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= \sum_(j0 <- arrivals_between t1 t | ?p j0) service_at sched j0 x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (sched x == Some i) <= \sum_(j0 <- arrivals_between t1 t | ?p j0) service_at sched j0 x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = true
SCH: forall p : ProcessorState Job (processor_state Job), unit_service_proc_model (processor_state Job) -> uniprocessor_model (processor_state Job) -> forall p0 : pred Job, uniq (arrivals_between t1 t) -> \sum_(j <- arrivals_between t1 t | p0 j) service_at sched j x <= 1
i: Job

(sched x == Some i) <= service_at sched i x
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false

\sum_(i <- arrivals_between t1 t | hep_job_from_another_task i j) (Some jo == Some i) <= false
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
joo: Job
PRIO2: hep_job_from_another_task joo j

(Some jo == Some joo) = 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
joo: Job
PRIO2: hep_job_from_another_task joo j
C: Some jo = Some joo

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
t1, t: instant
H_quiet_time: quiet_time_cl j t1
x: nat
Ge: t1 <= x
Le: x < t
jo: Job
Sched_jo: scheduled_at sched jo x
EqSched_jo: #|[pred x0 | let 'FiniteQuant.Quantified F := FiniteQuant.ex (T:=Core) (, scheduled_on jo (sched x) x0) x0 x0 in F]| <> 0
EQ: sched x = Some jo
PRIO: hep_job_from_another_task jo j = false
PRIO2: hep_job_from_another_task jo j

False
by rewrite PRIO2 in PRIO. } Qed. End InstantiatedServiceEquivalences. (** In this section we prove that the abstract definition of busy interval is equivalent to the conventional, concrete definition of busy interval for JLFP scheduling. *) Section BusyIntervalEquivalence. (** Consider any job j of [tsk]. *) Variable j : Job. Hypothesis H_j_arrives : arrives_in arr_seq j. Hypothesis H_job_of_tsk : job_of_task tsk j. Hypothesis H_job_cost_positive : job_cost_positive j. (** To show the equivalence of the notions of busy intervals we first show that the notions of quiet time are also equivalent. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall j : Job, quiet_time_cl j 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
forall t : instant, quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall j : Job, quiet_time_cl j 0
by intros jhp ARR HP AB; move: AB; rewrite /arrived_before ltn0.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0

forall t : instant, quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
~~ pending_earlier_and_at sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), cumulative_interference j t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

\sum_(0 <= t < t) interference j t = \sum_(0 <= t < t) interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

cumulative_priority_inversion j 0 t + cumulative_interference_from_other_hep_jobs j 0 t = \sum_(0 <= i < t) is_priority_inversion j i + \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

cumulative_interference_from_other_hep_jobs j 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

service_of_other_hep_jobs j 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
L2: forall (t1 t2 : instant) (j : Job), cumulative_interfering_workload_of_hep_jobs j t1 t2 = workload_of_other_hep_jobs j t1 t2

service_of_other_hep_jobs j 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

service_of_other_hep_jobs j 0 t == workload_of_other_hep_jobs j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

workload_of_other_hep_jobs j 0 t = service_of_other_hep_jobs j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

forall j0 : Job, j0 \in arrival_sequence.arrivals_between arr_seq 0 t -> another_hep_job j0 j -> completed_by sched j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

arrives_in arr_seq j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
hep_job j0 j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
arrived_before j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

arrives_in arr_seq j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
hep_job j0 j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
arrived_before j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

hep_job j0 j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
arrived_before j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

hep_job j0 j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j
arrived_before j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

arrived_before j0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
j0: Job
H4: j0 \in arrival_sequence.arrivals_between arr_seq 0 t
H5: another_hep_job j0 j

arrived_before j0 t
by apply in_arrivals_implies_arrived_between in H4.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

~~ pending_earlier_and_at sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

~~ pending_earlier_and_at sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t

~~ arrived_before j t \/ completed_by sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
t: instant
QT: quiet_time_cl j t
ARR: arrived_before j t = true

completed_by sched j t
apply QT; try eauto 2. } Qed.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall j : Job, quiet_time_cl j 0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall j : Job, quiet_time_cl j 0
by intros jhp ARR HP AB; move: AB; rewrite /arrived_before ltn0.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), cumulative_interference j t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), cumulative_interference j t1 t2 = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_other_hep_jobs j t1 t

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t

forall t : instant, quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T0: cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t

completed_by sched jhp t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T0: cumul_interference interference j 0 t = cumul_interfering_workload interfering_workload j 0 t
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t

workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t

\sum_(0 <= t < t) interference j t = \sum_(0 <= t < t) interfering_workload j t -> workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t

cumulative_interference_from_other_hep_jobs j 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i -> workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t

service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i -> workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2

service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == \sum_(0 <= i < t) interfering_workload_of_hep_jobs j i -> workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2

service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t -> workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t

workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) = service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
T1: ~~ pending_earlier_and_at sched j t
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j

j \notin arrivals_between 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j
NOTIN: j \notin arrivals_between 0 t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j

j \notin arrivals_between 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j
jo: Job
IN: jo \in arrivals_between 0 t
EQ: jo = j

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j
IN: j \in arrivals_between 0 t

False
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j
IN: arrived_between j 0 t

False
by move: IN => /andP [_ IN]; move: T1; rewrite leqNgt; move => /negP LT; apply: LT.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: t <= job_arrival j
NOTIN: j \notin arrivals_between 0 t

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: t <= job_arrival j
NOTIN: j \notin arrivals_between 0 t
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_jobs (another_hep_job^~ j) (arrivals_between 0 t)

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t

j \in arrivals_between 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t

j \in arrivals_between 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: exists t' : nat, job_arrival j <= t' < t /\ scheduled_at sched j t'

j \in arrivals_between 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: exists t' : nat, job_arrival j <= t' < t /\ scheduled_at sched j t'

arrived_between j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
t': nat
T3: job_arrival j <= t' < t

arrived_between j 0 t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
t': nat
T3: job_arrival j <= t' < t

job_arrival j < t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
t': nat
H3e: job_arrival j <= t'
H3t: t' < t

job_arrival j < t
by apply leq_ltn_trans with t'.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)

service_of_jobs sched (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t) 0 t == workload_of_jobs (hep_job^~ j) (arrival_sequence.arrivals_between arr_seq 0 t)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)

\sum_(j0 <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job j0 j) service_during sched j0 0 t == \sum_(j0 <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T2: service_of_jobs sched (another_hep_job^~ j) (arrivals_between 0 t) 0 t == workload_of_other_hep_jobs j 0 t
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)

(if hep_job j j then service_during sched j 0 t else 0) + \sum_(i <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job i j && (i != j)) service_during sched i 0 t == \sum_(j0 <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)
T2: \sum_(j0 <- arrivals_between 0 t | another_hep_job j0 j) service_during sched j0 0 t = workload_of_other_hep_jobs j 0 t

(if hep_job j j then service_during sched j 0 t else 0) + workload_of_other_hep_jobs j 0 t == \sum_(j0 <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job j0 j) job_cost j0
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)
T2: \sum_(j0 <- arrivals_between 0 t | another_hep_job j0 j) service_during sched j0 0 t = workload_of_other_hep_jobs j 0 t

(if hep_job j j then service_during sched j 0 t else 0) + workload_of_other_hep_jobs j 0 t == (if hep_job j j then job_cost j else 0) + \sum_(i <- arrival_sequence.arrivals_between arr_seq 0 t | hep_job i j && (i != j)) job_cost i
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)
T2: \sum_(j0 <- arrivals_between 0 t | another_hep_job j0 j) service_during sched j0 0 t = workload_of_other_hep_jobs j 0 t

(if H3 j j then service_during sched j 0 t else 0) == (if H3 j j then job_cost j else 0)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)
T2: \sum_(j0 <- arrivals_between 0 t | another_hep_job j0 j) service_during sched j0 0 t = workload_of_other_hep_jobs j 0 t

service_during sched j 0 t == job_cost j
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
zero_is_quiet_time: forall j : Job, quiet_time_cl j 0
CIS: forall (j : Job) (t1 t2 : instant), \sum_(t1 <= t < t2) interference j t = cumulative_priority_inversion j t1 t2 + cumulative_interference_from_other_hep_jobs j t1 t2
IC1: forall (j : Job) (t1 t : instant), quiet_time_cl j t1 -> cumulative_interference_from_other_hep_jobs j t1 t = service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t) t1 t
t: instant
jhp: Job
ARR: arrives_in arr_seq jhp
HP: hep_job jhp j
ARB: arrived_before jhp t
L2: forall (t1 t2 : instant) (j : Job), \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t = workload_of_other_hep_jobs j t1 t2
T1: completed_by sched j t
JIN: j \in arrivals_between 0 t
UNIC: uniq (arrivals_between 0 t)
T2: \sum_(j0 <- arrivals_between 0 t | another_hep_job j0 j) service_during sched j0 0 t = workload_of_other_hep_jobs j 0 t

service_during sched j 0 t <= job_cost j
by apply service_at_most_cost; eauto with basic_facts. Qed. (** The equivalence trivially follows from the lemmas above. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_cl j t <-> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t : instant, quiet_time_cl j t <-> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant

quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant
quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant

quiet_time_cl j t -> quiet_time_ab j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant
quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant

quiet_time_ab j t -> quiet_time_cl j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t: instant

quiet_time_ab j t -> quiet_time_cl j t
apply quiet_time_ab_implies_quiet_time_cl. Qed. (** Based on that, we prove that the concept of busy interval obtained by instantiating the abstract definition of busy interval coincides with the conventional definition of busy interval. *)
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t1 t2 : instant, busy_interval_cl j t1 t2 <-> busy_interval_ab j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j

forall t1 t2 : instant, busy_interval_cl j t1 t2 <-> busy_interval_ab j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant

busy_interval_cl j t1 t2 -> busy_interval_ab j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
busy_interval_ab j t1 t2 -> busy_interval_cl j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant

busy_interval_cl j t1 t2 -> busy_interval_ab j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

busy_interval_ab j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

quiet_time sched interference interfering_workload j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

quiet_time sched interference interfering_workload j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2
quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

quiet_time sched interference interfering_workload j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ: t1 < t2
QTt1: busy_interval.quiet_time arr_seq sched j t1
NQT: forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
REL: t1 <= job_arrival j < t2
QTt2: busy_interval.quiet_time arr_seq sched j t2

quiet_time sched interference interfering_workload j t2
by eapply instantiated_quiet_time_equivalent_quiet_time in QTt2.
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant

busy_interval_ab j t1 t2 -> busy_interval_cl j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant

busy_interval_ab j t1 t2 -> busy_interval_cl j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

busy_interval_cl j t1 t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

t1 < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

t1 < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

busy_interval.quiet_time arr_seq sched j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

busy_interval.quiet_time arr_seq sched j t1
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

forall t : nat, t1 < t < t2 -> ~ busy_interval.quiet_time arr_seq sched j t
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

t1 <= job_arrival j < t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2
busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

busy_interval.quiet_time arr_seq sched j t2
Task: TaskType
H: TaskCost Task
Job: JobType
H0: JobTask Job Task
H1: JobArrival Job
H2: JobCost Job
arr_seq: arrival_sequence Job
H_arrival_times_are_consistent: consistent_arrival_times arr_seq
H_arr_seq_is_a_set: arrival_sequence_uniq arr_seq
sched: schedule (processor_state Job)
H_jobs_come_from_arrival_sequence: jobs_come_from_arrival_sequence sched arr_seq
H_jobs_must_arrive_to_execute: jobs_must_arrive_to_execute sched
H_completed_jobs_dont_execute: completed_jobs_dont_execute sched
H_sequential_tasks: sequential_tasks arr_seq sched
H3: JLFP_policy Job
H_priority_is_reflexive: reflexive_priorities
H_priority_is_transitive: transitive_priorities
H_JLFP_respects_sequential_tasks: policy_respects_sequential_tasks
tsk: Task
job_scheduled_at:= scheduled_at sched: Job -> instant -> bool
job_completed_by:= completed_by sched: Job -> instant -> bool
arrivals_between:= arrival_sequence.arrivals_between arr_seq: instant -> instant -> seq Job
cumulative_task_interference:= cumul_task_interference arr_seq sched: (Job -> instant -> bool) -> Task -> instant -> nat -> nat -> nat
another_hep_job:= fun j1 j2 : Job => hep_job j1 j2 && (j1 != j2): JLFP_policy Job
hep_job_from_another_task:= fun j1 j2 : Job => hep_job j1 j2 && (job_task j1 != job_task j2): JLFP_policy Job
is_priority_inversion:= fun j : Job => [eta priority_inversion.is_priority_inversion sched j]: Job -> instant -> bool
cumulative_interference_from_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) is_interference_from_another_hep_job j t: Job -> instant -> instant -> nat
cumulative_interference:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interference j t: Job -> instant -> instant -> nat
cumulative_interfering_workload_of_hep_jobs:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload_of_hep_jobs j t: Job -> instant -> instant -> nat
cumulative_interfering_workload:= fun (j : Job) (t1 t2 : instant) => \sum_(t1 <= t < t2) interfering_workload j t: Job -> instant -> instant -> nat
workload_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => workload_of_jobs (another_hep_job^~ j) (arrivals_between t1 t2): Job -> instant -> instant -> nat
service_of_hep_jobs_from_other_tasks:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (hep_job_from_another_task^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
service_of_other_hep_jobs:= fun (j : Job) (t1 t2 : instant) => service_of_jobs sched (another_hep_job^~ j) (arrivals_between t1 t2) t1 t2: Job -> instant -> instant -> nat
quiet_time_cl:= busy_interval.quiet_time arr_seq sched: Job -> instant -> Prop
quiet_time_ab:= quiet_time sched interference interfering_workload: Job -> instant -> Prop
busy_interval_cl:= busy_interval.busy_interval arr_seq sched: Job -> instant -> instant -> Prop
busy_interval_ab:= busy_interval sched interference interfering_workload: Job -> instant -> instant -> Prop
j: Job
H_j_arrives: arrives_in arr_seq j
H_job_of_tsk: job_of_task tsk j
H_job_cost_positive: job_cost_positive j
t1, t2: instant
NEQ1: t1 <= job_arrival j
NEQ2: job_arrival j < t2
QTt1: quiet_time sched interference interfering_workload j t1
NQT: forall t : nat, t1 < t < t2 -> ~ quiet_time sched interference interfering_workload j t
QTt2: quiet_time sched interference interfering_workload j t2

busy_interval.quiet_time arr_seq sched j t2
by eapply instantiated_quiet_time_equivalent_quiet_time; eauto 2. } Qed. End BusyIntervalEquivalence. End Equivalences. End JLFPInstantiation.