Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PROSA - Formally Proven Schedulability Analysis
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RT-PROOFS
PROSA - Formally Proven Schedulability Analysis
Commits
ad126ecd
Commit
ad126ecd
authored
2 years ago
by
Björn Brandenburg
Browse files
Options
Downloads
Patches
Plain Diff
introduce a generic notion of `is_idle`
parent
8c2ed307
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
analysis/facts/model/ideal/schedule.v
+11
-0
11 additions, 0 deletions
analysis/facts/model/ideal/schedule.v
analysis/facts/model/scheduled.v
+21
-0
21 additions, 0 deletions
analysis/facts/model/scheduled.v
model/schedule/scheduled.v
+4
-0
4 additions, 0 deletions
model/schedule/scheduled.v
with
36 additions
and
0 deletions
analysis/facts/model/ideal/schedule.v
+
11
−
0
View file @
ad126ecd
...
...
@@ -179,6 +179,17 @@ Section ScheduleClass.
by
move
:
(
NS
j
)
=>
/
negP
.
}
Qed
.
(** Similarly, the generic and specific notions of idle instants
coincide, too. *)
Lemma
is_idle_def
:
forall
t
,
is_idle
arr_seq
sched
t
=
ideal_is_idle
sched
t
.
Proof
.
move
=>
t
.
rewrite
/
is_idle
/
ideal_is_idle
-
scheduled_job_at_def
/
scheduled_job_at
.
by
case
:
(
scheduled_jobs_at
_
_
_)
.
Qed
.
End
RelationToGenericScheduledJob
.
End
ScheduleClass
.
...
...
This diff is collapsed.
Click to expand it.
analysis/facts/model/scheduled.v
+
21
−
0
View file @
ad126ecd
...
...
@@ -103,6 +103,27 @@ Section ScheduledJobs.
by
case
:
(
scheduled_jobs_at
arr_seq
sched
t
)
.
Qed
.
(** For convenience, we state a similar observation also for the [is_idle]
wrapper, both for the idle case ... *)
Corollary
is_idle_iff
:
forall
t
,
is_idle
arr_seq
sched
t
=
(
scheduled_job_at
arr_seq
sched
t
==
None
)
.
Proof
.
move
=>
t
;
rewrite
/
is_idle
/
scheduled_job_at
.
by
case
:
(
scheduled_jobs_at
_
_
_)
.
Qed
.
(** ... and the non-idle case. *)
Corollary
is_nonidle_iff
:
forall
t
,
~~
is_idle
arr_seq
sched
t
<->
exists
j
,
scheduled_at
sched
j
t
.
Proof
.
move
=>
t
.
rewrite
is_idle_iff
.
split
=>
[|[
j
]];
last
by
rewrite
-
scheduled_job_at_iff
=>
->
.
case
SJA
:
(
scheduled_job_at
_
_
_)
=>
[
j
|
//
]
_
.
by
exists
j
;
rewrite
-
scheduled_job_at_iff
.
Qed
.
End
Uniprocessors
.
(** ** Case Analysis: a Scheduled Job Exists or no Job is Scheduled*)
...
...
This diff is collapsed.
Click to expand it.
model/schedule/scheduled.v
+
4
−
0
View file @
ad126ecd
...
...
@@ -31,4 +31,8 @@ Section ScheduledJobs.
that reduces the sequence of scheduled jobs to an [option Job]. *)
Definition
scheduled_job_at
t
:=
ohead
(
scheduled_jobs_at
t
)
.
(** We also provide a convenience wrapper to express the absence of scheduled
jobs. *)
Definition
is_idle
t
:=
scheduled_jobs_at
t
==
[::]
.
End
ScheduledJobs
.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment