diff --git a/BertognaResponseTimeDefs.v b/BertognaResponseTimeDefs.v index 96041ae8935222a5e9ab0461962a512b824a5d6f..57fdc8a39ed5f2291dd0d1a9bfc000969fa89291 100644 --- a/BertognaResponseTimeDefs.v +++ b/BertognaResponseTimeDefs.v @@ -753,17 +753,22 @@ Module ResponseTimeAnalysis. Variable num_cpus: nat. Variable higher_eq_priority: fp_policy. + Hypothesis H_valid_policy: valid_fp_policy higher_eq_priority. Variable ts: sporadic_taskset. - Hypothesis taskset_not_empty: size ts > 0. + Hypothesis H_taskset_not_empty: size ts > 0. - Hypothesis unique_priorities: + Hypothesis H_unique_priorities: forall tsk1 tsk2, tsk1 \in ts -> tsk2 \in ts -> higher_eq_priority tsk1 tsk2 -> higher_eq_priority tsk2 tsk1 -> tsk1 = tsk2. + + Definition task_index := 'I_(size ts). + Definition nth_task := (tnth (in_tuple ts)). + Definition sorted_ts := sort higher_eq_priority ts. Definition max_steps (tsk: sporadic_task) := task_deadline tsk + 1. @@ -851,7 +856,24 @@ Module ResponseTimeAnalysis. rename H_valid_job_parameters into JOBPARAMS, H_completed_jobs_dont_execute into COMP, H_jobs_must_arrive_to_execute into MUSTARRIVE, - H_global_scheduling_invariant into INVARIANT. + H_global_scheduling_invariant into INVARIANT, + H_valid_policy into VALIDhp, + H_taskset_not_empty into NONEMPTY. + + assert (SORT: sorted higher_eq_priority sorted_ts). + { + unfold valid_fp_policy, fp_is_total in *; des. + by apply sort_sorted; unfold total; ins; apply/orP; apply VALIDhp1. + } + + rewrite -(size_sort higher_eq_priority) in NONEMPTY. + intro tsk; rewrite -(mem_sort higher_eq_priority); revert tsk. + fold sorted_ts in *. + destruct sorted_ts as [|tsk0 sorted_ts]; [by rewrite ltnn in NONEMPTY | simpl in SORT]. + induction sorted_ts as [|tsk0 sorted_ts]; [by rewrite ltnn in NONEMPTY | simpl in SORT]. + fold sorted_ts in NONEMPTY. destruct sorted_ts. + simpl in SORT. + have: SORT => /pathP SORT. intros tsk INtsk j JOBtsk. move: JOBtsk => /eqP JOBtsk; move: H_test_passes => /allP TEST. generalize JOBPARAMS; specialize (JOBPARAMS j); ins; des; rewrite JOBPARAMS2 JOBtsk.