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
2f14fdff
Commit
2f14fdff
authored
3 years ago
by
Pierre Roux
Browse files
Options
Downloads
Patches
Plain Diff
Don't dispaly warnings on Requires
parent
e6e12c8f
No related branches found
No related tags found
1 merge request
!191
Draft: Initiate a Prosa Tutorial
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/tutorial.v
+17
-17
17 additions, 17 deletions
doc/tutorial.v
with
17 additions
and
17 deletions
doc/tutorial.v
+
17
−
17
View file @
2f14fdff
...
...
@@ -156,8 +156,8 @@ Alt-down, Alt-up or Alt-right under VSCode).
It is first needed to load a few libraries.
|*)
From
mathcomp
Require
Ex
port
all_ssreflect
.
Require
Import
prosa
.
util
.
notation
.
From
mathcomp
Require
Im
port
all_ssreflect
.
(* .in *)
Require
Import
prosa
.
util
.
notation
.
(* .in *)
(*|
.. _architecture:
...
...
@@ -507,7 +507,7 @@ defines a very generic notion of `ProcessorState` and `schedule`.
It is worth noting that a `schedule` is a function from time instants
to processor states.
|*)
Require
Import
prosa
.
behavior
.
schedule
.
Require
Import
prosa
.
behavior
.
schedule
.
(* .in *)
Print
schedule
.
(* .unfold *)
(*|
...
...
@@ -622,7 +622,7 @@ Finally, the
`behavior/all.v <https://gitlab.mpi-sws.org/RT-PROOFS/rt-proofs/-/blob/master/behavior/all.v>`_
file provides a simple way to load all the above definitions by just typing
|*)
Require
Import
prosa
.
behavior
.
all
.
Require
Import
prosa
.
behavior
.
all
.
(* .in *)
(*|
.. _model:
...
...
@@ -646,7 +646,7 @@ that are at each instant either idle or executing a single job.
To do this, a processor state, as introduced in schedule_ above,
is defined using the ``option`` type of Coq's standard library
|*)
Require
Import
prosa
.
model
.
processor
.
ideal
.
Require
Import
prosa
.
model
.
processor
.
ideal
.
(* .in *)
Print
processor_state
.
(* .unfold *)
...
...
@@ -671,7 +671,7 @@ defines the concept of *task*.
A task is simply defined as a type with decidable equality.
|*)
Require
Import
model
.
task
.
concept
.
Require
Import
model
.
task
.
concept
.
(* .in *)
Print
TaskType
.
(* .unfold *)
(*|
...
...
@@ -714,7 +714,7 @@ and two instants ``t1`` and ``t2``, then
``task_arrivals_between arr_seq tsk t1 t2`` is the set of all jobs
of task ``tsk`` arriving between ``t1`` and ``t2`` in ``arr_seq``.
|*)
Require
Import
prosa
.
model
.
task
.
arrivals
.
Require
Import
prosa
.
model
.
task
.
arrivals
.
(* .in *)
Print
task_arrivals_between
.
(* .unfold *)
(*|
...
...
@@ -727,7 +727,7 @@ defines the notion of sequential tasks.
A task is called *sequential* when all its jobs execute
in a non overlapping manner. This is formally defined in
|*)
Require
Import
prosa
.
model
.
task
.
sequentiality
.
Require
Import
prosa
.
model
.
task
.
sequentiality
.
(* .in *)
Print
sequential_tasks
.
(*|
...
...
@@ -742,7 +742,7 @@ defines main classes of priority policies.
In this document, we are interested in Fixed Priority (FP) policies,
defined by the typeclass
|*)
Require
Import
prosa
.
model
.
priority
.
classes
.
Require
Import
prosa
.
model
.
priority
.
classes
.
(* .in *)
Print
FP_policy
.
(* .unfold *)
(*|
...
...
@@ -782,7 +782,7 @@ defines the notion of preemption.
In Prosa, the various preemption models are represented with a single
predicate
|*)
Require
Import
prosa
.
model
.
preemption
.
parameter
.
Require
Import
prosa
.
model
.
preemption
.
parameter
.
(* .in *)
Print
JobPreemptable
.
(*|
...
...
@@ -812,7 +812,7 @@ The file `model/task/arrival/curves.v <https://gitlab.mpi-sws.org/RT-PROOFS/rt-p
defines (min and max) arrival curves.
The typeclass ``MaxArrivals`` gives the type of arrival curves.
|*)
Require
Import
prosa
.
model
.
task
.
arrival
.
curves
.
Require
Import
prosa
.
model
.
task
.
arrival
.
curves
.
(* .in *)
Print
MaxArrivals
.
(* .unfold *)
(*|
...
...
@@ -840,7 +840,7 @@ In file `model/schedule/preemption_time.v <https://gitlab.mpi-sws.org/RT-PROOFS/
the notion of preemption time in a schedule is defined according
to the scheduled job at each instant, if any.
|*)
Require
Import
prosa
.
model
.
schedule
.
preemption_time
.
Require
Import
prosa
.
model
.
schedule
.
preemption_time
.
(* .in *)
Print
preemption_time
.
(* .unfold *)
(*|
...
...
@@ -848,7 +848,7 @@ This allows to, finally, define what it means for a schedule to
respect a given priority policy in file
`model/schedule/priority_driven.v <https://gitlab.mpi-sws.org/RT-PROOFS/rt-proofs/-/blob/master/model/schedule/priority_driven.v>`_
|*)
Require
Import
prosa
.
model
.
schedule
.
priority_driven
.
Require
Import
prosa
.
model
.
schedule
.
priority_driven
.
(* .in *)
Print
respects_JLDP_policy_at_preemption_point
.
(* .unfold *)
(*|
...
...
@@ -886,13 +886,13 @@ Some definitions are used only internally into `analysis/`,
thus they aren't located in `behavior/` nor `model/`.
Among them, let's mention
|*)
Require
Import
prosa
.
analysis
.
definitions
.
job_properties
.
Require
Import
prosa
.
analysis
.
definitions
.
job_properties
.
(* .in *)
Print
job_cost_positive
.
(*|
and
|*)
Require
Import
prosa
.
analysis
.
definitions
.
schedule_prefix
.
Require
Import
prosa
.
analysis
.
definitions
.
schedule_prefix
.
(* .in *)
Print
identical_prefix
.
(*|
...
...
@@ -904,7 +904,7 @@ contain many lemmas establishing basic facts about all the definitions
introduced in the behavior_ section above.
The user can load all those lemmas by simply requiring
|*)
Require
Import
prosa
.
analysis
.
facts
.
behavior
.
all
.
Require
Import
prosa
.
analysis
.
facts
.
behavior
.
all
.
(* .in *)
(*|
The files in `analysis/facts/behavior/` are developed in a literate
programming style like the remaining of Prosa. Thus, they can be read
...
...
@@ -922,7 +922,7 @@ The `Search` command can also be used with a pattern, for instance
to look for lemmas of the shape
`service at some point <= service at some other point`, one can type
|*)
Search
(
service
_
_
_
<=
service
_
_
_)
.
(* .unfold *)
Search
(
service
_
_
_
<=
service
_
_
_)
.
(* .unfold *)
(*|
The `Search` command is even more powerful, as documented in
`Coq's reference manual <https://coq.inria.fr/distrib/current/refman/proof-engine/vernacular-commands.html#coq:cmd.Search>`_.
...
...
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