Built with Alectryon, running Coq+SerAPI v8.20.0+0.20.0. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
[Loading ML file ssrmatching_plugin.cmxs (using legacy method) ... done]
[Loading ML file ssreflect_plugin.cmxs (using legacy method) ... done]
[Loading ML file ring_plugin.cmxs (using legacy method) ... done]
Serlib plugin: coq-elpi.elpi is not available: serlib support is missing. Incremental checking for commands in this plugin will be impacted.
[Loading ML file coq-elpi.elpi ... done]
[Loading ML file zify_plugin.cmxs (using legacy method) ... done]
[Loading ML file micromega_core_plugin.cmxs (using legacy method) ... done]
[Loading ML file micromega_plugin.cmxs (using legacy method) ... done]
[Loading ML file btauto_plugin.cmxs (using legacy method) ... done]
Notation "_ + _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ - _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ >= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ > _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ * _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Require Export prosa.analysis.facts.preemption.rtc_threshold.preemptive. Require Export prosa.analysis.facts.readiness.sequential. Require Export prosa.analysis.definitions.tardiness. Require Export prosa.implementation.facts.ideal_uni.prio_aware. Require Export prosa.implementation.definitions.task. (** ** Fully-Preemptive Fixed-Priority Schedules *) (** In this section, we prove that the fully-preemptive preemption policy under fixed-priority schedules is valid, and that the scheduling policy is respected at each preemption point. This file does not contain novel facts; it is used to uniform POET's certificates and minimize their verbosity. *) Section Schedule. (** In this file, we adopt the Prosa standard implementation of jobs and tasks. *) Definition Task := concrete_task : eqType. Definition Job := concrete_job : eqType. (** Consider any valid arrival sequence, ... *) Variable arr_seq : arrival_sequence Job. Hypothesis H_valid_arrivals : valid_arrival_sequence arr_seq. (** ... assume sequential readiness, ... *) Instance sequential_ready_instance : JobReady Job (ideal.processor_state Job) := sequential_ready_instance arr_seq. (** ... and consider any fully-preemptive, fixed-priority schedule. *) #[local] Existing Instance fully_preemptive_job_model. #[local] Existing Instance NumericFPAscending. Definition sched := uni_schedule arr_seq. (** First, we remark that such a schedule is valid. *)
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

valid_schedule sched arr_seq
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

valid_schedule sched arr_seq
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

nonclairvoyant_readiness sequential_ready_instance
by apply sequential_readiness_nonclairvoyance. Qed. (** Finally, we show that the fixed-priority policy is respected at each preemption point. *)
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

respects_FP_policy_at_preemption_point arr_seq sched (NumericFPAscending Task)
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

respects_FP_policy_at_preemption_point arr_seq sched (NumericFPAscending Task)
arr_seq: arrival_sequence Job
H_valid_arrivals: valid_arrival_sequence arr_seq

nonclairvoyant_readiness sequential_ready_instance
by apply sequential_readiness_nonclairvoyance. Qed. End Schedule.