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.definitions.carry_in.(** In this module we collect some basic facts about quiet times. *)SectionFacts.(** Consider any kind of jobs... *)Context {Job : JobType} `{JobArrival Job} `{JobCost Job}.(** ... and a [JLFP] policy defined on these jobs. *)Context `{JLFP_policy Job}.(** Consider any processor state model. *)Context {PState : ProcessorState Job}.(** Consider any schedule and arrival sequence. *)Variablesched : schedule PState.Variablearr_seq : arrival_sequence Job.(** We prove that 0 is always a quiet time. *)
bymove=> jhp ARR HP; rewrite /arrived_before ltn0.Qed.(** The fact that there is no carry-in at time instant [t] trivially implies that [t] is a quiet time. *)
forall (j : Job) (t : instant),
no_carry_in arr_seq sched t ->
quiet_time arr_seq sched j t
bymove=> j t + j_hp ARR HP BEF; apply.Qed.(** For convenience in proofs, we restate that by definition there are no quiet times in a busy-interval prefix... *)