Skip to content
Snippets Groups Projects

Add "conditional" interference to remove duplication

Merged Sergey Bozhko requested to merge sbozhko/rt-proofs:cond_int into master

In short, the idea is to add a new notion of "conditional interference" as follows:

  Definition conditional_interference P j t :=
    (P j t) && (interference j t).

  Definition cumul_cond_interference P j t1 t2 :=
    \sum_(t1 <= t < t2) conditional_interference P j t.

Then, job_interference_is_bounded_by can be generalized as follows. Now, we don't have to duplicate and tweak job_interference_is_bounded_by for different situations like sequential tasks (or restricted supply RTA).

    Definition cond_interference_is_bounded_by Cond :=
      forall t1 t2 Δ j,
        arrives_in arr_seq j ->
        job_of_task tsk j ->
        busy_interval j t1 t2 ->
        t1 + Δ < t2 ->
        ~~ completed_by sched j (t1 + Δ) ->
        forall X, P j X -> 
          cumul_cond_interference Cond j t1 (t1 + Δ) <= IBF tsk X Δ.
          (*    ^^^^--new         ^^^^--new                       *)

Specifically, the bound definition from abstract_seq_rta.v

    Definition task_interference_is_bounded_by
               (tIBF : Task -> duration -> duration -> duration) :=
      forall j R t1 t2,
        arrives_in arr_seq j ->
        job_of_task tsk j ->
        t1 + R < t2 ->
        ~~ completed_by sched j (t1 + R) ->
        busy_interval sched j t1 t2 ->
        let offset := job_arrival j - t1 in
        cumul_task_interference tsk t2 t1 (t1 + R) <= tIBF tsk offset R.

becomes

    Definition non_self (j : Job) (t : instant) :=
      ~~ task_scheduled_at arr_seq sched (job_task j) t.

    Definition task_interference_is_bounded_by tIBF := 
      cond_interference_is_bounded_by
        arr_seq sched tsk tIBF (relative_arrival_time_of_job_is_A sched) non_self.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Pierre Roux
  • 79 79 Context `{Interference Job}.
    80 80 Context `{InterferingWorkload Job}.
    81 81
    82 (* TODO: comment *)
    83 Definition conditional_interference P j t :=
    84 (P j t) && (interference j t).
    85
    86 Definition cumul_cond_interference P j t1 t2 :=
    87 \sum_(t1 <= t < t2) conditional_interference P j t.
    • Comment on lines +86 to +87

      With the definition should come a bunch of "easy lemmas", the ones I can think of are

      forall P Q j t, (P j t -> Q j t) -> conditional_interference P j t -> conditional_interference Q j t
      forall P Q, P =2 Q -> conditional_interference P =2 conditional_interference Q
      forall P Q j, conditional_interference (predI P Q) j =1 predI (conditional_interference P j) (conditional_interference P j)
      forall P Q j, conditional_interference (predU P Q) j =1 predU (conditional_interference P j) (conditional_interference P j)
      forall P Q j t1 t2, (forall t, t1 <= t < t2 -> P j t -> Q j t) -> cumul_cond_interference P j t1 t2 <= cumul_cond_interference Q j t1 t2
      forall P Q j t1 t2, (forall t, t1 <= t < t2 -> P j t = Q j t) -> cumul_cond_interference P j t1 t2 = cumul_cond_interference Q j t1 t2
      forall P Q j t1 t2, cumul_cond_interference (predU P Q) j t1 t2 <= cumul_cond_interference P j t1 t2 + cumul_cond_interference Q j t1 t2
      forall P Q j t1 t2, (forall t, t1 <= t < t1 -> ~~ (P j t && Q j t)) -> cumul_cond_interference (predU P Q) j t1 t2 = cumul_cond_interference P j t1 t2 + cumul_cond_interference Q j t1 t2

      (there are probably a few others)

    • Sergey Bozhko changed this line in version 5 of the diff

      changed this line in version 5 of the diff

    • Author Maintainer

      For now, I added just one lemma. I did not notice a place where other lemmas would come in handy

    • I think it would make sense to prove such a library of lemmas only once for a generic notion of cumulative (wrapping bigop), rather than proving it specifically for cumulative interference.

    • For now, I added just one lemma. I did not notice a place where other lemmas would come in handy

      Generally, it's a good practice when adding a definition to prove a "reasonnably complete" set of basic properties about it. Even if you don't use these small lemmas right away, they might become useful later to you or someone else. And more importantly, this enables you to rapidly check that you new definition indeed behaves as you expect / that you have a good understanding of it / that it is convenient to use.

    • Please register or sign in to reply
  • Pierre Roux
  • Sergey Bozhko added 6 commits

    added 6 commits

    • 93e70f81 - 1 commit from branch RT-PROOFS:master
    • a0be2014 - :construction:: try removing [task_interference_is_bounded_by]
    • 76eb95cc - :construction:: close proofs in [abstract_seq_rta]
    • e9be05b9 - :construction:: close a few proofs in [iw_inst]
    • d9f2923a - :construction:: minor update
    • 2b0be4d5 - :construction:: close a few lemmas

    Compare with previous version

  • Sergey Bozhko added 8 commits

    added 8 commits

    • 2ee018c2 - add more lemmas about [task_scheduled_at]
    • 9ebb3f19 - :construction:: try removing [task_interference_is_bounded_by]
    • 5b446ab8 - :construction:: close proofs in [abstract_seq_rta]
    • 29e2ee4c - :construction:: close a few proofs in [iw_inst]
    • a6370aa6 - :construction:: minor update
    • b4b314f3 - :construction:: close a few lemmas
    • 46a6ac9f - :construction:: close a few lemmas
    • c403a380 - :construction:: finish all lemmas

    Compare with previous version

  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Pierre Roux
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading