Skip to content
Snippets Groups Projects

Formalize pRTA from "Critical Instant for Probabilistic Timing Guarantees: Refuted and Revisited"

Open Sergey Bozhko requested to merge pRTA into main

Please review this MR commit-by-commit.

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
22 {job_task : JobTask Job Task}.
23
24 Variable (ts : seq Task) (tsk : Task).
25
26 Definition arrivals_from_task_set :=
27 forall (j : Job) (ω : Ω), arrives_in (arr_seq ω) j -> job_task j \in ts.
28
29 Definition arrivals_cost_consistent :=
30 forall (j : Job) (ω : Ω),
31 arrives_in (arr_seq ω) j ->
32 isSome (job_cost j ω).
33
34 Definition pr_arrival_sequence_uniq :=
35 forall (ω : Ω), arrival_sequence_uniq (arr_seq ω).
36
37 Definition restricted_deadlines :=
  • Björn Brandenburg
    Björn Brandenburg @bbb started a thread on commit 74fb37ca
  • 93 { apply: leq_trans; last by apply H.
    94 by move: IN1; rewrite mem_iota => /andP [_ T2]. }
    95 { apply: leq_trans; last by apply H.
    96 by move: IN2; rewrite mem_iota => /andP [_ T2]. }
    97 { rewrite map_inj_uniq; last by intros ? ? E; inversion E.
    98 by apply filter_uniq, index_enum_uniq. }
    99 }
    100 { rewrite map_inj_uniq.
    101 - by apply index_enum_uniq.
    102 - by intros ? ? E; inversion E.
    103 }
    104 Qed.
    105
    106 Lemma task_job_cost_independence :
    107 forall (a b : nat),
    108 independent [seq nth_cost tsk i | i <- iota a b].
  • Björn Brandenburg
    Björn Brandenburg @bbb started a thread on commit 75444e86
  • rt/model/pRBF.v 0 → 100644
    3
    4 (* --------------------------------- ProBsa --------------------------------- *)
    5 From probsa.probability Require Export pmf.
    6
    7 (* ---------------------------------- Main ---------------------------------- *)
    8
    9 Section ProbRBF.
    10
    11 Context {Task : TaskType}
    12 {α : MaxArrivals Task}
    13 {pWCET_pmf : ProbWCET Task}.
    14
    15 (* NOTE: Ideally, ProbWCET should be a distrib. However, there are
    16 some type-related problems. Converting pWCET into a proper
    17 distribution is left as future maintenance work. *)
    18 Definition to_distrib (pWCET : ProbWCET Task) : Task -> distrib [countType of nat] :=
  • Björn Brandenburg
    Björn Brandenburg @bbb started a thread on commit b5bbba80
  • 25 {job_task : JobTask Job Task}.
    26
    27 Variable (ts : seq Task) (tsk : Task).
    28
    29 Definition arrivals_from_task_set :=
    30 forall (j : Job) (ω : Ω), arrives_in (arr_seq ω) j -> job_task j \in ts.
    31
    32 Definition arrivals_cost_consistent :=
    33 forall (j : Job) (ω : Ω),
    34 arrives_in (arr_seq ω) j ->
    35 isSome (job_cost j ω).
    36
    37 Definition pr_arrival_sequence_uniq :=
    38 forall (ω : Ω), arrival_sequence_uniq (arr_seq ω).
    39
    40 Definition restricted_deadlines :=
  • Björn Brandenburg
    Björn Brandenburg @bbb started a thread on commit b5bbba80
  • 5 Section PrMustBeReadyToExecture.
    6
    7 Context {Ω} {μ : measure Ω}.
    8
    9 Context {Job : finType}
    10 {job_cost : JobCostRV Job Ω μ}
    11 {job_arrival : JobArrivalRV Job Ω μ}.
    12
    13 Context {PState : ProcessorState Job}.
    14 Variable sched : pr_schedule μ PState.
    15
    16 Let JobReadyRV :=
    17 forall (ω : Ω),
    18 @JobReady
    19 Job PState
    20 (fun j => odflt0 (job_cost j) ω) (fun j => odflt0 (job_arrival j) ω).
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading