Commit 179ca8e4 authored by Felipe Cerqueira's avatar Felipe Cerqueira

Fix name of parallel interference

parent b71f34f7
...@@ -125,7 +125,7 @@ Module ResponseTimeAnalysisEDF. ...@@ -125,7 +125,7 @@ Module ResponseTimeAnalysisEDF.
(* Let's call x the interference incurred by job j due to tsk_other, ...*) (* Let's call x the interference incurred by job j due to tsk_other, ...*)
Let x (tsk_other: sporadic_task) := Let x (tsk_other: sporadic_task) :=
task_interference job_cost job_task sched j task_interference_sequential job_cost job_task sched j
tsk_other (job_arrival j) (job_arrival j + R). tsk_other (job_arrival j) (job_arrival j + R).
(* and X the total interference incurred by job j due to any task. *) (* and X the total interference incurred by job j due to any task. *)
...@@ -183,7 +183,7 @@ Module ResponseTimeAnalysisEDF. ...@@ -183,7 +183,7 @@ Module ResponseTimeAnalysisEDF.
have INts := bertogna_edf_tsk_other_in_ts. have INts := bertogna_edf_tsk_other_in_ts.
apply leq_trans with (n := workload job_task sched tsk_other apply leq_trans with (n := workload job_task sched tsk_other
(job_arrival j) (job_arrival j + R)); (job_arrival j) (job_arrival j + R));
first by apply task_interference_le_workload. first by apply task_interference_seq_le_workload.
by apply workload_bounded_by_W with (task_deadline0 := task_deadline) by apply workload_bounded_by_W with (task_deadline0 := task_deadline)
(job_cost0 := job_cost) (job_deadline0 := job_deadline); try (by ins); last 2 first; (job_cost0 := job_cost) (job_deadline0 := job_deadline); try (by ins); last 2 first;
[ by apply bertogna_edf_R_other_ge_cost [ by apply bertogna_edf_R_other_ge_cost
......
...@@ -136,7 +136,7 @@ Module ResponseTimeAnalysisFP. ...@@ -136,7 +136,7 @@ Module ResponseTimeAnalysisFP.
(* Let's call x the interference incurred by job j due to tsk_other, ...*) (* Let's call x the interference incurred by job j due to tsk_other, ...*)
Let x (tsk_other: sporadic_task) := Let x (tsk_other: sporadic_task) :=
task_interference job_cost job_task sched j task_interference_sequential job_cost job_task sched j
tsk_other (job_arrival j) (job_arrival j + R). tsk_other (job_arrival j) (job_arrival j + R).
(* and X the total interference incurred by job j due to any task. *) (* and X the total interference incurred by job j due to any task. *)
...@@ -198,7 +198,7 @@ Module ResponseTimeAnalysisFP. ...@@ -198,7 +198,7 @@ Module ResponseTimeAnalysisFP.
have INts := bertogna_fp_tsk_other_in_ts. have INts := bertogna_fp_tsk_other_in_ts.
apply leq_trans with (n := workload job_task sched tsk_other apply leq_trans with (n := workload job_task sched tsk_other
(job_arrival j) (job_arrival j + R)); (job_arrival j) (job_arrival j + R));
first by apply task_interference_le_workload. first by apply task_interference_seq_le_workload.
by apply workload_bounded_by_W with (task_deadline0 := task_deadline) by apply workload_bounded_by_W with (task_deadline0 := task_deadline)
(job_cost0 := job_cost) (job_deadline0 := job_deadline); (job_cost0 := job_cost) (job_deadline0 := job_deadline);
try (by ins); last 2 first; try (by ins); last 2 first;
......
This diff is collapsed.
...@@ -122,7 +122,7 @@ Module ResponseTimeAnalysisEDF. ...@@ -122,7 +122,7 @@ Module ResponseTimeAnalysisEDF.
(* Let's call x the interference incurred by job j due to tsk_other, ...*) (* Let's call x the interference incurred by job j due to tsk_other, ...*)
Let x (tsk_other: sporadic_task) := Let x (tsk_other: sporadic_task) :=
task_interference_with_parallelism job_cost job_task sched j task_interference job_cost job_task sched j
tsk_other (job_arrival j) (job_arrival j + R). tsk_other (job_arrival j) (job_arrival j + R).
(* and X the total interference incurred by job j due to any task. *) (* and X the total interference incurred by job j due to any task. *)
...@@ -180,7 +180,7 @@ Module ResponseTimeAnalysisEDF. ...@@ -180,7 +180,7 @@ Module ResponseTimeAnalysisEDF.
have INts := bertogna_edf_tsk_other_in_ts. have INts := bertogna_edf_tsk_other_in_ts.
apply leq_trans with (n := workload job_task sched tsk_other apply leq_trans with (n := workload job_task sched tsk_other
(job_arrival j) (job_arrival j + R)); (job_arrival j) (job_arrival j + R));
first apply task_interference_with_parallelism_le_workload. first apply task_interference_le_workload.
apply workload_bounded_by_W with (task_deadline0 := task_deadline) apply workload_bounded_by_W with (task_deadline0 := task_deadline)
(job_cost0 := job_cost) (job_deadline0 := job_deadline); try (by ins). (job_cost0 := job_cost) (job_deadline0 := job_deadline); try (by ins).
...@@ -269,7 +269,7 @@ Module ResponseTimeAnalysisEDF. ...@@ -269,7 +269,7 @@ Module ResponseTimeAnalysisEDF.
H_rt_bounds_contains_all_tasks into UNZIP, H_rt_bounds_contains_all_tasks into UNZIP,
H_restricted_deadlines into RESTR. H_restricted_deadlines into RESTR.
unfold sporadic_task_model in *. unfold sporadic_task_model in *.
unfold x, X, total_interference, task_interference_with_parallelism. unfold x, X, total_interference, task_interference.
rewrite -big_mkcond -exchange_big big_distrl /=. rewrite -big_mkcond -exchange_big big_distrl /=.
rewrite [\sum_(_ <= _ < _ | backlogged _ _ _ _) _]big_mkcond. rewrite [\sum_(_ <= _ < _ | backlogged _ _ _ _) _]big_mkcond.
apply eq_big_nat; move => t /andP [GEt LTt]. apply eq_big_nat; move => t /andP [GEt LTt].
...@@ -290,9 +290,9 @@ Module ResponseTimeAnalysisEDF. ...@@ -290,9 +290,9 @@ Module ResponseTimeAnalysisEDF.
rewrite (bigD1_seq (job_task j_other)) /=; last by rewrite filter_uniq. rewrite (bigD1_seq (job_task j_other)) /=; last by rewrite filter_uniq.
{ {
rewrite (eq_bigr (fun i => 0)); rewrite (eq_bigr (fun i => 0));
last by intros i DIFF; rewrite /schedules_job_of_tsk SCHED;apply/eqP;rewrite eqb0 eq_sym. last by intros i DIFF; rewrite /schedules_job_of_task SCHED;apply/eqP;rewrite eqb0 eq_sym.
rewrite big_const_seq iter_addn mul0n 2!addn0; apply/eqP; rewrite eqb1. rewrite big_const_seq iter_addn mul0n 2!addn0; apply/eqP; rewrite eqb1.
by unfold schedules_job_of_tsk; rewrite SCHED. by unfold schedules_job_of_task; rewrite SCHED.
} }
rewrite mem_filter; apply/andP; split; last by apply FROMTS. rewrite mem_filter; apply/andP; split; last by apply FROMTS.
unfold jldp_can_interfere_with. unfold jldp_can_interfere_with.
......
...@@ -122,7 +122,7 @@ Module ResponseTimeAnalysisFP. ...@@ -122,7 +122,7 @@ Module ResponseTimeAnalysisFP.
(* Let's call x the interference incurred by job j due to tsk_other, ...*) (* Let's call x the interference incurred by job j due to tsk_other, ...*)
Let x (tsk_other: sporadic_task) := Let x (tsk_other: sporadic_task) :=
task_interference_with_parallelism job_cost job_task sched j task_interference job_cost job_task sched j
tsk_other (job_arrival j) (job_arrival j + R). tsk_other (job_arrival j) (job_arrival j + R).
(* and X the total interference incurred by job j due to any task. *) (* and X the total interference incurred by job j due to any task. *)
...@@ -180,7 +180,7 @@ Module ResponseTimeAnalysisFP. ...@@ -180,7 +180,7 @@ Module ResponseTimeAnalysisFP.
have INts := bertogna_fp_tsk_other_in_ts. have INts := bertogna_fp_tsk_other_in_ts.
apply leq_trans with (n := workload job_task sched tsk_other apply leq_trans with (n := workload job_task sched tsk_other
(job_arrival j) (job_arrival j + R)); (job_arrival j) (job_arrival j + R));
first by apply task_interference_with_parallelism_le_workload. first by apply task_interference_le_workload.
by apply workload_bounded_by_W with (task_deadline0 := task_deadline) by apply workload_bounded_by_W with (task_deadline0 := task_deadline)
(job_cost0 := job_cost) (job_deadline0 := job_deadline); (job_cost0 := job_cost) (job_deadline0 := job_deadline);
try (by ins); try (by ins);
...@@ -260,7 +260,7 @@ Module ResponseTimeAnalysisFP. ...@@ -260,7 +260,7 @@ Module ResponseTimeAnalysisFP.
H_response_time_no_larger_than_deadline into NOMISS. H_response_time_no_larger_than_deadline into NOMISS.
unfold sporadic_task_model, enforces_FP_policy, unfold sporadic_task_model, enforces_FP_policy,
enforces_JLDP_policy, FP_to_JLDP in *. enforces_JLDP_policy, FP_to_JLDP in *.
unfold x, X, total_interference, task_interference_with_parallelism. unfold x, X, total_interference, task_interference.
rewrite -big_mkcond -exchange_big big_distrl /=. rewrite -big_mkcond -exchange_big big_distrl /=.
rewrite [\sum_(_ <= _ < _ | backlogged _ _ _ _) _]big_mkcond. rewrite [\sum_(_ <= _ < _ | backlogged _ _ _ _) _]big_mkcond.
apply eq_big_nat; move => t /andP [GEt LTt]. apply eq_big_nat; move => t /andP [GEt LTt].
...@@ -281,9 +281,9 @@ Module ResponseTimeAnalysisFP. ...@@ -281,9 +281,9 @@ Module ResponseTimeAnalysisFP.
rewrite (bigD1_seq (job_task j_other)) /=; last by rewrite filter_uniq. rewrite (bigD1_seq (job_task j_other)) /=; last by rewrite filter_uniq.
{ {
rewrite (eq_bigr (fun i => 0)); rewrite (eq_bigr (fun i => 0));
last by intros i DIFF; rewrite /schedules_job_of_tsk SCHED;apply/eqP;rewrite eqb0 eq_sym. last by intros i DIFF; rewrite /schedules_job_of_task SCHED;apply/eqP;rewrite eqb0 eq_sym.
rewrite big_const_seq iter_addn mul0n 2!addn0; apply/eqP; rewrite eqb1. rewrite big_const_seq iter_addn mul0n 2!addn0; apply/eqP; rewrite eqb1.
by unfold schedules_job_of_tsk; rewrite SCHED. by unfold schedules_job_of_task; rewrite SCHED.
} }
rewrite mem_filter; apply/andP; split; last by apply FROMTS. rewrite mem_filter; apply/andP; split; last by apply FROMTS.
unfold can_interfere_with_tsk, fp_can_interfere_with. unfold can_interfere_with_tsk, fp_can_interfere_with.
......
...@@ -191,7 +191,7 @@ Module InterferenceBoundEDF. ...@@ -191,7 +191,7 @@ Module InterferenceBoundEDF.
(* Let's call x the task interference incurred by job j due to tsk_k. *) (* Let's call x the task interference incurred by job j due to tsk_k. *)
Let x := Let x :=
task_interference_with_parallelism job_cost job_task sched j_i task_interference job_cost job_task sched j_i
tsk_k (job_arrival j_i) (job_arrival j_i + delta). tsk_k (job_arrival j_i) (job_arrival j_i + delta).
(* Also, recall the EDF-specific interference bound for EDF. *) (* Also, recall the EDF-specific interference bound for EDF. *)
...@@ -208,7 +208,7 @@ Module InterferenceBoundEDF. ...@@ -208,7 +208,7 @@ Module InterferenceBoundEDF.
Let n_k := div_ceil (D_i + R_k - D_k + 1) p_k. Let n_k := div_ceil (D_i + R_k - D_k + 1) p_k.
(* Let's give a simpler name to job interference. *) (* Let's give a simpler name to job interference. *)
Let interference_caused_by := job_interference_with_parallelism job_cost sched j_i. Let interference_caused_by := job_interference job_cost sched j_i.
(* Identify the subset of jobs that actually cause interference *) (* Identify the subset of jobs that actually cause interference *)
Let interfering_jobs := Let interfering_jobs :=
...@@ -230,7 +230,7 @@ Module InterferenceBoundEDF. ...@@ -230,7 +230,7 @@ Module InterferenceBoundEDF.
x <= \sum_(j <- jobs_scheduled_between sched t1 t2 | job_task j == tsk_k) x <= \sum_(j <- jobs_scheduled_between sched t1 t2 | job_task j == tsk_k)
interference_caused_by j t1 t2. interference_caused_by j t1 t2.
Proof. Proof.
unfold x, task_interference_with_parallelism, interference_caused_by, job_interference_with_parallelism. unfold x, task_interference, interference_caused_by, job_interference.
rewrite [\sum_(_ <- _ sched _ _ | _) _]exchange_big /=. rewrite [\sum_(_ <- _ sched _ _ | _) _]exchange_big /=.
rewrite big_nat_cond [\sum_(_ <= _ < _ | true) _]big_nat_cond. rewrite big_nat_cond [\sum_(_ <= _ < _ | true) _]big_nat_cond.
apply leq_sum. move => t /andP [LEt _]. apply leq_sum. move => t /andP [LEt _].
...@@ -240,9 +240,9 @@ Module InterferenceBoundEDF. ...@@ -240,9 +240,9 @@ Module InterferenceBoundEDF.
last by rewrite andFb (eq_bigr (fun x => 0)); last by rewrite andFb (eq_bigr (fun x => 0));
first by rewrite big_const_seq iter_addn mul0n addn0. first by rewrite big_const_seq iter_addn mul0n addn0.
rewrite andTb. rewrite andTb.
destruct (schedules_job_of_tsk job_task sched tsk_k cpu t) eqn:SCHED; destruct (schedules_job_of_task job_task sched tsk_k cpu t) eqn:SCHED;
last by done. last by done.
unfold schedules_job_of_tsk in *. unfold schedules_job_of_task in *.
destruct (sched cpu t) eqn:SOME; last by done. destruct (sched cpu t) eqn:SOME; last by done.
rewrite big_mkcond /= (bigD1_seq j) /=; last by apply undup_uniq. rewrite big_mkcond /= (bigD1_seq j) /=; last by apply undup_uniq.
{ {
...@@ -324,7 +324,7 @@ Module InterferenceBoundEDF. ...@@ -324,7 +324,7 @@ Module InterferenceBoundEDF.
intros j; rewrite mem_filter; move => /andP [/andP [/eqP JOBj _] _]. intros j; rewrite mem_filter; move => /andP [/andP [/eqP JOBj _] _].
specialize (PARAMS j); des. specialize (PARAMS j); des.
apply leq_trans with (n := service_during sched j t1 t2); apply leq_trans with (n := service_during sched j t1 t2);
first by apply job_interference_with_parallelism_le_service. first by apply job_interference_le_service.
by apply cumulative_service_le_task_cost with (job_task0 := job_task) by apply cumulative_service_le_task_cost with (job_task0 := job_task)
(task_deadline0 := task_deadline) (job_cost0 := job_cost) (task_deadline0 := task_deadline) (job_cost0 := job_cost)
(job_deadline0 := job_deadline). (job_deadline0 := job_deadline).
...@@ -421,7 +421,7 @@ Module InterferenceBoundEDF. ...@@ -421,7 +421,7 @@ Module InterferenceBoundEDF.
destruct FST as [_ [ FSTserv _]]. destruct FST as [_ [ FSTserv _]].
move: FSTserv => /negP FSTserv; apply FSTserv. move: FSTserv => /negP FSTserv; apply FSTserv.
rewrite -leqn0; apply leq_trans with (n := service_during sched j_fst t1 t2); rewrite -leqn0; apply leq_trans with (n := service_during sched j_fst t1 t2);
first by apply job_interference_with_parallelism_le_service. first by apply job_interference_le_service.
rewrite leqn0; apply/eqP. rewrite leqn0; apply/eqP.
by apply cumulative_service_after_job_rt_zero with (job_cost0 := job_cost) (R := R_k); by apply cumulative_service_after_job_rt_zero with (job_cost0 := job_cost) (R := R_k);
try (by done); apply ltnW. try (by done); apply ltnW.
...@@ -524,7 +524,7 @@ Module InterferenceBoundEDF. ...@@ -524,7 +524,7 @@ Module InterferenceBoundEDF.
instantiate (1 := elem); move => [LSTtsk [/eqP LSTserv LSTin]]. instantiate (1 := elem); move => [LSTtsk [/eqP LSTserv LSTin]].
apply LSTserv; apply/eqP; rewrite -leqn0. apply LSTserv; apply/eqP; rewrite -leqn0.
apply leq_trans with (n := service_during sched j_lst t1 t2); apply leq_trans with (n := service_during sched j_lst t1 t2);
first by apply job_interference_with_parallelism_le_service. first by apply job_interference_le_service.
rewrite leqn0; apply/eqP; unfold service_during. rewrite leqn0; apply/eqP; unfold service_during.
by apply cumulative_service_before_job_arrival_zero. by apply cumulative_service_before_job_arrival_zero.
Qed. Qed.
...@@ -548,7 +548,7 @@ Module InterferenceBoundEDF. ...@@ -548,7 +548,7 @@ Module InterferenceBoundEDF.
rewrite ltnNge; apply/negP; red; intro BUG; apply SNDserv. rewrite ltnNge; apply/negP; red; intro BUG; apply SNDserv.
apply/eqP; rewrite -leqn0; apply leq_trans with (n := service_during apply/eqP; rewrite -leqn0; apply leq_trans with (n := service_during
sched j_snd t1 t2); sched j_snd t1 t2);
first by apply job_interference_with_parallelism_le_service. first by apply job_interference_le_service.
rewrite leqn0; apply/eqP. rewrite leqn0; apply/eqP.
by apply cumulative_service_before_job_arrival_zero. by apply cumulative_service_before_job_arrival_zero.
} }
...@@ -635,12 +635,12 @@ Module InterferenceBoundEDF. ...@@ -635,12 +635,12 @@ Module InterferenceBoundEDF.
last by rewrite leq_add2l. last by rewrite leq_add2l.
have FST := interference_bound_edf_j_fst_is_job_of_tsk_k. have FST := interference_bound_edf_j_fst_is_job_of_tsk_k.
destruct FST as [_ [ LEdl _]]. destruct FST as [_ [ LEdl _]].
apply interference_with_parallelism_under_edf_implies_shorter_deadlines with apply interference_under_edf_implies_shorter_deadlines with
(job_deadline0 := job_deadline) in LEdl; try (by done). (job_deadline0 := job_deadline) in LEdl; try (by done).
rewrite addnC [D_i + _]addnC. rewrite addnC [D_i + _]addnC.
unfold D_k, D_i. unfold D_k, D_i.
by rewrite -interference_bound_edf_j_fst_deadline by rewrite -interference_bound_edf_j_fst_deadline
-interference_bound_edf_j_i_deadline. -interference_bound_edf_j_i_deadline.
Qed. Qed.
(* Using the lemma above, we prove that the ratio n_k is at least the number of (* Using the lemma above, we prove that the ratio n_k is at least the number of
...@@ -688,7 +688,7 @@ Module InterferenceBoundEDF. ...@@ -688,7 +688,7 @@ Module InterferenceBoundEDF.
last by rewrite leq_add2r. last by rewrite leq_add2r.
have LST := interference_bound_edf_j_lst_is_job_of_tsk_k. have LST := interference_bound_edf_j_lst_is_job_of_tsk_k.
destruct LST as [_ [ LEdl _]]. destruct LST as [_ [ LEdl _]].
apply interference_with_parallelism_under_edf_implies_shorter_deadlines with apply interference_under_edf_implies_shorter_deadlines with
(job_deadline0 := job_deadline) in LEdl; try (by done). (job_deadline0 := job_deadline) in LEdl; try (by done).
unfold D_i, D_k in DIST; rewrite interference_bound_edf_j_lst_deadline unfold D_i, D_k in DIST; rewrite interference_bound_edf_j_lst_deadline
interference_bound_edf_j_i_deadline in LEdl. interference_bound_edf_j_i_deadline in LEdl.
......
This diff is collapsed.
...@@ -30,14 +30,14 @@ Module InterferenceEDF. ...@@ -30,14 +30,14 @@ Module InterferenceEDF.
(* Under EDF scheduling, a job only causes interference if its deadline (* Under EDF scheduling, a job only causes interference if its deadline
is not larger than the deadline of the analyzed job. *) is not larger than the deadline of the analyzed job. *)
Lemma interference_under_edf_implies_shorter_deadlines : Lemma interference_seq_under_edf_implies_shorter_deadlines :
forall (j j': JobIn arr_seq) t1 t2, forall (j j': JobIn arr_seq) t1 t2,
job_interference job_cost sched j' j t1 t2 != 0 -> job_interference_sequential job_cost sched j' j t1 t2 != 0 ->
job_arrival j + job_deadline j <= job_arrival j' + job_deadline j'. job_arrival j + job_deadline j <= job_arrival j' + job_deadline j'.
Proof. Proof.
rename H_scheduler_uses_EDF into PRIO. rename H_scheduler_uses_EDF into PRIO.
intros j j' t1 t2 INTERF. intros j j' t1 t2 INTERF.
unfold job_interference in INTERF. unfold job_interference_sequential in INTERF.
destruct ([exists t': 'I_t2, (t' >= t1) && backlogged job_cost sched j' t' && destruct ([exists t': 'I_t2, (t' >= t1) && backlogged job_cost sched j' t' &&
scheduled sched j t']) eqn:EX. scheduled sched j t']) eqn:EX.
{ {
...@@ -57,14 +57,14 @@ Module InterferenceEDF. ...@@ -57,14 +57,14 @@ Module InterferenceEDF.
(* Under EDF scheduling, a job only causes interference if its deadline (* Under EDF scheduling, a job only causes interference if its deadline
is not larger than the deadline of the analyzed job. *) is not larger than the deadline of the analyzed job. *)
Lemma interference_with_parallelism_under_edf_implies_shorter_deadlines : Lemma interference_under_edf_implies_shorter_deadlines :
forall (j j': JobIn arr_seq) t1 t2, forall (j j': JobIn arr_seq) t1 t2,
job_interference_with_parallelism job_cost sched j' j t1 t2 != 0 -> job_interference job_cost sched j' j t1 t2 != 0 ->
job_arrival j + job_deadline j <= job_arrival j' + job_deadline j'. job_arrival j + job_deadline j <= job_arrival j' + job_deadline j'.
Proof. Proof.
rename H_scheduler_uses_EDF into PRIO. rename H_scheduler_uses_EDF into PRIO.
intros j j' t1 t2 INTERF. intros j j' t1 t2 INTERF.
unfold job_interference_with_parallelism in INTERF. unfold job_interference in INTERF.
destruct ([exists t': 'I_t2, destruct ([exists t': 'I_t2,
[exists cpu: processor num_cpus, [exists cpu: processor num_cpus,
(t' >= t1) && backlogged job_cost sched j' t' && (t' >= t1) && backlogged job_cost sched j' t' &&
......
...@@ -275,7 +275,7 @@ Module Platform. ...@@ -275,7 +275,7 @@ Module Platform.
apply count_exists; first by done. apply count_exists; first by done.
{ {
intros cpu x1 x2 SCHED1 SCHED2. intros cpu x1 x2 SCHED1 SCHED2.
unfold schedules_job_of_tsk in *. unfold schedules_job_of_task in *.
destruct (sched cpu t); last by done. destruct (sched cpu t); last by done.
move: SCHED1 SCHED2 => /eqP SCHED1 /eqP SCHED2. move: SCHED1 SCHED2 => /eqP SCHED1 /eqP SCHED2.
by rewrite -SCHED1 -SCHED2. by rewrite -SCHED1 -SCHED2.
...@@ -303,7 +303,7 @@ Module Platform. ...@@ -303,7 +303,7 @@ Module Platform.
{ {
move: SCHED' => /exists_inP [cpu INcpu /eqP SCHED']. move: SCHED' => /exists_inP [cpu INcpu /eqP SCHED'].
apply/exists_inP; exists cpu; first by done. apply/exists_inP; exists cpu; first by done.
by unfold schedules_job_of_tsk; rewrite SCHED' eq_refl. by unfold schedules_job_of_task; rewrite SCHED' eq_refl.
} }
{ {
apply/eqP; red; intro SAMEtsk; symmetry in SAMEtsk. apply/eqP; red; intro SAMEtsk; symmetry in SAMEtsk.
......
...@@ -207,7 +207,7 @@ Module PlatformFP. ...@@ -207,7 +207,7 @@ Module PlatformFP.
apply count_exists; first by done. apply count_exists; first by done.
{ {
intros cpu x1 x2 SCHED1 SCHED2. intros cpu x1 x2 SCHED1 SCHED2.
unfold schedules_job_of_tsk in *. unfold schedules_job_of_task in *.
destruct (sched cpu t); last by done. destruct (sched cpu t); last by done.
move: SCHED1 SCHED2 => /eqP SCHED1 /eqP SCHED2. move: SCHED1 SCHED2 => /eqP SCHED1 /eqP SCHED2.
by rewrite -SCHED1 -SCHED2. by rewrite -SCHED1 -SCHED2.
...@@ -251,7 +251,7 @@ Module PlatformFP. ...@@ -251,7 +251,7 @@ Module PlatformFP.
{ {
move: SCHED' => /exists_inP [cpu INcpu /eqP SCHED']. move: SCHED' => /exists_inP [cpu INcpu /eqP SCHED'].
apply/exists_inP; exists cpu; first by done. apply/exists_inP; exists cpu; first by done.
by unfold schedules_job_of_tsk; rewrite SCHED' eq_refl. by unfold schedules_job_of_task; rewrite SCHED' eq_refl.
} }
apply/andP; split; first by rewrite -JOBtsk; apply PRIO with (t := t). apply/andP; split; first by rewrite -JOBtsk; apply PRIO with (t := t).
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment