From ae8664ab5c88e6b5ec714993756fba0dc0dd9aef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bjo=CC=88rn=20Brandenburg?= <bbb@mpi-sws.org>
Date: Fri, 15 Jan 2016 12:33:11 +0100
Subject: [PATCH] Remove HTML files

An up-to-date version can always be generated with 'make html'.
---
 .gitignore                  |    1 +
 Vbase.html                  | 2349 -------------------
 arrival_sequence.html       |  151 --
 bertogna_edf_comp.html      |  473 ----
 bertogna_edf_theory.html    |  415 ----
 bertogna_fp_comp.html       |  423 ----
 bertogna_fp_theory.html     |  374 ----
 index.html                  | 4215 -----------------------------------
 interference.html           |  276 ---
 interference_bound_edf.html |  608 -----
 job.html                    |  157 --
 platform.html               |  170 --
 priority.html               |  227 --
 response_time.html          |  174 --
 schedulability.html         |  206 --
 schedule.html               |  437 ----
 task.html                   |  132 --
 task_arrival.html           |   72 -
 util_divround.html          |   37 -
 util_lemmas.html            |  480 ----
 workload.html               |   95 -
 workload_bound.html         |  442 ----
 22 files changed, 1 insertion(+), 11913 deletions(-)
 delete mode 100644 Vbase.html
 delete mode 100644 arrival_sequence.html
 delete mode 100644 bertogna_edf_comp.html
 delete mode 100644 bertogna_edf_theory.html
 delete mode 100644 bertogna_fp_comp.html
 delete mode 100644 bertogna_fp_theory.html
 delete mode 100644 index.html
 delete mode 100644 interference.html
 delete mode 100644 interference_bound_edf.html
 delete mode 100644 job.html
 delete mode 100644 platform.html
 delete mode 100644 priority.html
 delete mode 100644 response_time.html
 delete mode 100644 schedulability.html
 delete mode 100644 schedule.html
 delete mode 100644 task.html
 delete mode 100644 task_arrival.html
 delete mode 100644 util_divround.html
 delete mode 100644 util_lemmas.html
 delete mode 100644 workload.html
 delete mode 100644 workload_bound.html

diff --git a/.gitignore b/.gitignore
index 377258e37..bdb310812 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 *.d
 *.glob
 *.vo
+*.html
diff --git a/Vbase.html b/Vbase.html
deleted file mode 100644
index fbdfc9d9b..000000000
--- a/Vbase.html
+++ /dev/null
@@ -1,2349 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>Vbase</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library Vbase</h1>
-
-<div class="code">
-
-<br/>
-<span class="comment">(*&nbsp;*********************************************************************)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic&nbsp;lemmas&nbsp;&amp;&nbsp;tactics&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;*********************************************************************)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-This file collects a number of basic lemmas and tactics for better
-    proof automation, structuring large proofs, or rewriting.  Most of 
-    the rewriting support is ported from ss-reflect. 
-<div class="paragraph"> </div>
-
- Symbols starting with <span class="inlinecode"><span class="id" type="var">vlib__</span></span> are internal. 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.Eqdep.html#"><span class="id" type="library">Logic.Eqdep</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Bool.Bool.html#"><span class="id" type="library">Bool</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Arith.Arith.html#"><span class="id" type="library">Arith</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.ZArith.ZArith.html#"><span class="id" type="library">ZArith</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Strings.String.html#"><span class="id" type="library">String</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Open</span> <span class="id" type="keyword">Scope</span> <span class="id" type="var">bool_scope</span>.<br/>
-<span class="id" type="keyword">Open</span> <span class="id" type="keyword">Scope</span> <span class="id" type="var">list_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Set Implicit Arguments</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab3"></a><h1 class="section">Axioms</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-<span class="id" type="keyword">Require</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.ClassicalFacts.html#"><span class="id" type="library">ClassicalFacts</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Export</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.FunctionalExtensionality.html#"><span class="id" type="library">FunctionalExtensionality</span></a>.<br/>
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Export</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.ProofIrrelevance.html#"><span class="id" type="library">ProofIrrelevance</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">exten</span> := <span class="id" type="tactic">apply</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.FunctionalExtensionality.html#functional_extensionality"><span class="id" type="lemma">functional_extensionality</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab4"></a><h1 class="section">Coersion of <span class="inlinecode"><span class="id" type="var">bool</span></span> into <span class="inlinecode"><span class="id" type="keyword">Prop</span></span></h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Coersion of bools into Prop 
-</div>
-<div class="code">
-<span class="id" type="keyword">Coercion</span> <span class="id" type="var">is_true</span> (<span class="id" type="var">b</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) : <span class="id" type="keyword">Prop</span> := <a class="idref" href="Vbase.html#b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#true"><span class="id" type="constructor">true</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Hints for auto 
-</div>
-<div class="code">
-<span class="id" type="keyword">Lemma</span> <a name="vlib__true_is_true"><span class="id" type="lemma">vlib__true_is_true</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#true"><span class="id" type="constructor">true</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__not_false_is_true"><span class="id" type="lemma">vlib__not_false_is_true</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Hint Resolve</span> <a class="idref" href="Vbase.html#vlib__true_is_true"><span class="id" type="lemma">vlib__true_is_true</span></a> <a class="idref" href="Vbase.html#vlib__not_false_is_true"><span class="id" type="lemma">vlib__not_false_is_true</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab5"></a><h1 class="section">Very basic automation</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Set up for basic simplification 
-</div>
-<div class="code">
-
-<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Adaptation of the ss-reflect "<span class="inlinecode"><span class="id" type="var">done</span></span>" tactic. 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vlib__basic_done</span> := <br/>
-&nbsp;&nbsp;<span class="id" type="tactic">solve</span> [<span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib</span> | <span class="id" type="tactic">apply</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#sym_equal"><span class="id" type="abbreviation">sym_equal</span></a>; <span class="id" type="tactic">trivial</span> | <span class="id" type="tactic">discriminate</span> | <span class="id" type="var">contradiction</span>].<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">done</span> := <span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib</span>; <span class="id" type="tactic">hnf</span>; <span class="id" type="tactic">intros</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">solve</span> [<span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <span class="id" type="var">vlib__basic_done</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <span class="id" type="var">_</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">case</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">trivial</span>] <span class="id" type="keyword">end</span>].<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-A variant of the ssr "done" tactic that performs "eassumption". 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">edone</span> := <span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">trivial</span>; <span class="id" type="tactic">hnf</span>; <span class="id" type="tactic">intros</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">solve</span> [<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">vlib__basic_done</span>; <span class="id" type="tactic">split</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="var">eassumption</span>; <span class="id" type="var">vlib__basic_done</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <span class="id" type="var">_</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">case</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">trivial</span>] <span class="id" type="keyword">end</span>].<br/>
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "by"  <span class="id" type="var">tactic</span>(<span class="id" type="var">tac</span>) := (<span class="id" type="var">tac</span>; <span class="id" type="var">done</span>).<br/>
-<span class="id" type="keyword">Tactic Notation</span> "eby" <span class="id" type="var">tactic</span>(<span class="id" type="var">tac</span>) := (<span class="id" type="var">tac</span>; <span class="id" type="var">edone</span>).<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab6"></a><h1 class="section">Boolean reflection</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-These definitions are ported from ssr-bool. 
-<div class="paragraph"> </div>
-
- Negation lemmas 
-</div>
-<div class="code">
-<span class="id" type="keyword">Section</span> <a name="NegationLemmas"><span class="id" type="section">NegationLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Variables</span> (<a name="NegationLemmas.b"><span class="id" type="variable">b</span></a> <a name="NegationLemmas.c"><span class="id" type="variable">c</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbT"><span class="id" type="lemma">negbT</span></a> : <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a>.<br/>
- &nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbTE"><span class="id" type="lemma">negbTE</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- &nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbF"><span class="id" type="lemma">negbF</span></a> : <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- &nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbFE"><span class="id" type="lemma">negbFE</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a>.<br/>
- &nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbNE"><span class="id" type="lemma">negbNE</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a>) -&gt; <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a>.<br/>
- 
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbLR"><span class="id" type="lemma">negbLR</span></a> : <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="negbRL"><span class="id" type="lemma">negbRL</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a> -&gt; <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="contra"><span class="id" type="lemma">contra</span></a> : (<a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a> -&gt; <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a>) -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#NegationLemmas.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#NegationLemmas"><span class="id" type="section">NegationLemmas</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Lemmas for ifs, which allow reasoning about the condition without 
-    repeating it inside the proof. 
-</div>
-<div class="code">
-<span class="id" type="keyword">Section</span> <a name="BoolIf"><span class="id" type="section">BoolIf</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variables</span> (<a name="BoolIf.A"><span class="id" type="variable">A</span></a> <a name="BoolIf.B"><span class="id" type="variable">B</span></a> : <span class="id" type="keyword">Type</span>) (<a name="BoolIf.x"><span class="id" type="variable">x</span></a> : <a class="idref" href="Vbase.html#BoolIf.A"><span class="id" type="variable">A</span></a>) (<a name="BoolIf.f"><span class="id" type="variable">f</span></a> : <a class="idref" href="Vbase.html#BoolIf.A"><span class="id" type="variable">A</span></a> -&gt; <a class="idref" href="Vbase.html#BoolIf.B"><span class="id" type="variable">B</span></a>) (<a name="BoolIf.b"><span class="id" type="variable">b</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) (<a name="BoolIf.vT"><span class="id" type="variable">vT</span></a> <a name="BoolIf.vF"><span class="id" type="variable">vF</span></a> : <a class="idref" href="Vbase.html#BoolIf.A"><span class="id" type="variable">A</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Inductive</span> <a name="if_spec"><span class="id" type="inductive">if_spec</span></a> : <a class="idref" href="Vbase.html#BoolIf.A"><span class="id" type="variable">A</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> -&gt; <span class="id" type="keyword">Set</span> :=<br/>
-&nbsp;&nbsp;| <a name="IfSpecTrue"><span class="id" type="constructor">IfSpecTrue</span></a>  : <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a>         -&gt; <a class="idref" href="Vbase.html#if_spec"><span class="id" type="inductive">if_spec</span></a> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#true"><span class="id" type="constructor">true</span></a><br/>
-&nbsp;&nbsp;| <a name="IfSpecFalse"><span class="id" type="constructor">IfSpecFalse</span></a> : <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#if_spec"><span class="id" type="inductive">if_spec</span></a> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="ifP"><span class="id" type="lemma">ifP</span></a> : <a class="idref" href="Vbase.html#if_spec"><span class="id" type="inductive">if_spec</span></a> (<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a>) <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="if_same"><span class="id" type="lemma">if_same</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="if_neg"><span class="id" type="lemma">if_neg</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="keyword">if</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="fun_if"><span class="id" type="lemma">fun_if</span></a> : <a class="idref" href="Vbase.html#BoolIf.f"><span class="id" type="variable">f</span></a> (<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#BoolIf.f"><span class="id" type="variable">f</span></a> <a class="idref" href="Vbase.html#BoolIf.vT"><span class="id" type="variable">vT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#BoolIf.f"><span class="id" type="variable">f</span></a> <a class="idref" href="Vbase.html#BoolIf.vF"><span class="id" type="variable">vF</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="if_arg"><span class="id" type="lemma">if_arg</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">fT</span> <span class="id" type="var">fF</span> : <a class="idref" href="Vbase.html#BoolIf.A"><span class="id" type="variable">A</span></a> -&gt; <a class="idref" href="Vbase.html#BoolIf.B"><span class="id" type="variable">B</span></a>,<br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#fT"><span class="id" type="variable">fT</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#fF"><span class="id" type="variable">fF</span></a>) <a class="idref" href="Vbase.html#BoolIf.x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#BoolIf.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#fT"><span class="id" type="variable">fT</span></a> <a class="idref" href="Vbase.html#BoolIf.x"><span class="id" type="variable">x</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#fF"><span class="id" type="variable">fF</span></a> <a class="idref" href="Vbase.html#BoolIf.x"><span class="id" type="variable">x</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#BoolIf"><span class="id" type="section">BoolIf</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-The reflection predicate 
-</div>
-<div class="code">
-<span class="id" type="keyword">Inductive</span> <a name="reflect"><span class="id" type="inductive">reflect</span></a> (<span class="id" type="var">P</span> : <span class="id" type="keyword">Prop</span>) : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> -&gt; <span class="id" type="keyword">Set</span> :=<br/>
-&nbsp;&nbsp;| <a name="ReflectT"><span class="id" type="constructor">ReflectT</span></a> : <span class="id" type="var">P</span> -&gt; <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#true"><span class="id" type="constructor">true</span></a><br/>
-&nbsp;&nbsp;| <a name="ReflectF"><span class="id" type="constructor">ReflectF</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <span class="id" type="var">P</span> -&gt; <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Internal reflection lemmas 
-</div>
-<div class="code">
-<span class="id" type="keyword">Section</span> <a name="ReflectCore"><span class="id" type="section">ReflectCore</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variables</span> (<a name="ReflectCore.P"><span class="id" type="variable">P</span></a> : <span class="id" type="keyword">Prop</span>) (<a name="ReflectCore.b"><span class="id" type="variable">b</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) (<a name="ReflectCore.Hb"><span class="id" type="variable">Hb</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a>) (<a name="ReflectCore.Q"><span class="id" type="variable">Q</span></a> : <span class="id" type="keyword">Prop</span>) (<a name="ReflectCore.c"><span class="id" type="variable">c</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="introNTF"><span class="id" type="lemma">introNTF</span></a> : (<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a>) -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="introTF"><span class="id" type="lemma">introTF</span></a> : (<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a>) -&gt; <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="elimNTF"><span class="id" type="lemma">elimNTF</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="elimTF"><span class="id" type="lemma">elimTF</span></a> : <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="equivPif"><span class="id" type="lemma">equivPif</span></a> : (<a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a> -&gt; <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a>) -&gt; (<a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a>) -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="xorPif"><span class="id" type="lemma">xorPif</span></a> : <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">(</span></a><a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="Vbase.html#ReflectCore.P"><span class="id" type="variable">P</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">)</span></a> -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectCore.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectCore.Q"><span class="id" type="variable">Q</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#ReflectCore"><span class="id" type="section">ReflectCore</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Internal negated reflection lemmas 
-</div>
-<div class="code">
-<span class="id" type="keyword">Section</span> <a name="ReflectNegCore"><span class="id" type="section">ReflectNegCore</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variables</span> (<a name="ReflectNegCore.P"><span class="id" type="variable">P</span></a> : <span class="id" type="keyword">Prop</span>) (<a name="ReflectNegCore.b"><span class="id" type="variable">b</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) (<a name="ReflectNegCore.Hb"><span class="id" type="variable">Hb</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.b"><span class="id" type="variable">b</span></a>)) (<a name="ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> : <span class="id" type="keyword">Prop</span>) (<a name="ReflectNegCore.c"><span class="id" type="variable">c</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="introTFn"><span class="id" type="lemma">introTFn</span></a> : (<span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectNegCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a>) -&gt; <a class="idref" href="Vbase.html#ReflectNegCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="elimTFn"><span class="id" type="lemma">elimTFn</span></a> : <a class="idref" href="Vbase.html#ReflectNegCore.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.c"><span class="id" type="variable">c</span></a> -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectNegCore.c"><span class="id" type="variable">c</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="equivPifn"><span class="id" type="lemma">equivPifn</span></a> : (<a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> -&gt; <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a>) -&gt; (<a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a>) -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectNegCore.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="xorPifn"><span class="id" type="lemma">xorPifn</span></a> : <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">(</span></a><a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.P"><span class="id" type="variable">P</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">)</span></a> -&gt; <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#ReflectNegCore.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectNegCore.Q"><span class="id" type="variable">Q</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#ReflectNegCore"><span class="id" type="section">ReflectNegCore</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-User-oriented reflection lemmas 
-</div>
-<div class="code">
-<span class="id" type="keyword">Section</span> <a name="Reflect"><span class="id" type="section">Reflect</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variables</span> (<a name="Reflect.P"><span class="id" type="variable">P</span></a> <a name="Reflect.Q"><span class="id" type="variable">Q</span></a> : <span class="id" type="keyword">Prop</span>) (<a name="Reflect.b"><span class="id" type="variable">b</span></a> <a name="Reflect.b'"><span class="id" type="variable">b'</span></a> <a name="Reflect.c"><span class="id" type="variable">c</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>).<br/>
-<span class="id" type="keyword">Hypotheses</span> (<a name="Reflect.Pb"><span class="id" type="variable">Pb</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a>) (<a name="Reflect.Pb'"><span class="id" type="variable">Pb'</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b'"><span class="id" type="variable">b'</span></a>)).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="introT"><span class="id" type="lemma">introT</span></a>  : <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="introF"><span class="id" type="lemma">introF</span></a>  : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="introN"><span class="id" type="lemma">introN</span></a>  : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="introNf"><span class="id" type="lemma">introNf</span></a> : <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="introTn"><span class="id" type="lemma">introTn</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.b'"><span class="id" type="variable">b'</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="introFn"><span class="id" type="lemma">introFn</span></a> : <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.b'"><span class="id" type="variable">b'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="elimT"><span class="id" type="lemma">elimT</span></a>  : <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="elimF"><span class="id" type="lemma">elimF</span></a>  : <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="elimN"><span class="id" type="lemma">elimN</span></a>  : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a><a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="elimNf"><span class="id" type="lemma">elimNf</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="elimTn"><span class="id" type="lemma">elimTn</span></a> : <a class="idref" href="Vbase.html#Reflect.b'"><span class="id" type="variable">b'</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- <span class="id" type="keyword">Lemma</span> <a name="elimFn"><span class="id" type="lemma">elimFn</span></a> : <a class="idref" href="Vbase.html#Reflect.b'"><span class="id" type="variable">b'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="introP"><span class="id" type="lemma">introP</span></a> : (<a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a>) -&gt; (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a>) -&gt; <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="iffP"><span class="id" type="lemma">iffP</span></a> : (<a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a>) -&gt; (<a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>) -&gt; <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="appP"><span class="id" type="lemma">appP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.Q"><span class="id" type="variable">Q</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="sameP"><span class="id" type="lemma">sameP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> <a class="idref" href="Vbase.html#Reflect.c"><span class="id" type="variable">c</span></a> -&gt; <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#Reflect.c"><span class="id" type="variable">c</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="decPcases"><span class="id" type="lemma">decPcases</span></a> : <span class="id" type="keyword">if</span> <a class="idref" href="Vbase.html#Reflect.b"><span class="id" type="variable">b</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a> <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="decP"><span class="id" type="definition">decP</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a><a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#Reflect.P"><span class="id" type="variable">P</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#Reflect"><span class="id" type="section">Reflect</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Allow&nbsp;the&nbsp;direct&nbsp;application&nbsp;of&nbsp;a&nbsp;reflection&nbsp;lemma&nbsp;to&nbsp;a&nbsp;boolean&nbsp;assertion.&nbsp;&nbsp;*)</span><br/>
-<span class="id" type="keyword">Coercion</span> <a class="idref" href="Vbase.html#elimT"><span class="id" type="lemma">elimT</span></a> : <span class="id" type="var">reflect</span> &gt;-&gt; <span class="id" type="var">Funclass</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Section</span> <a name="ReflectConnectives"><span class="id" type="section">ReflectConnectives</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variable</span> <a name="ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a name="ReflectConnectives.b2"><span class="id" type="variable">b2</span></a> <a name="ReflectConnectives.b3"><span class="id" type="variable">b3</span></a> <a name="ReflectConnectives.b4"><span class="id" type="variable">b4</span></a> <a name="ReflectConnectives.b5"><span class="id" type="variable">b5</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="idP"><span class="id" type="lemma">idP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="idPn"><span class="id" type="lemma">idPn</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="negP"><span class="id" type="lemma">negP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'~'_x"><span class="id" type="notation">~</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="negPn"><span class="id" type="lemma">negPn</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>)).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="negPf"><span class="id" type="lemma">negPf</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="andP"><span class="id" type="lemma">andP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>) (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="orP"><span class="id" type="lemma">orP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>) (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="nandP"><span class="id" type="lemma">nandP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>)).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="norP"><span class="id" type="lemma">norP</span></a> : <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<a class="idref" href="Vbase.html#ReflectConnectives.b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <a class="idref" href="Vbase.html#ReflectConnectives.b2"><span class="id" type="variable">b2</span></a>)).<br/>
- 
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#ReflectConnectives"><span class="id" type="section">ReflectConnectives</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab7"></a><h1 class="section">Equality types</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-These definitions are ported from ssr-eq. 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Inductive</span> <a name="phantom"><span class="id" type="inductive">phantom</span></a> (<span class="id" type="var">T</span> :  <span class="id" type="keyword">Type</span>) (<span class="id" type="var">p</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>) :  <span class="id" type="keyword">Type</span> := <a name="Phantom"><span class="id" type="constructor">Phantom</span></a>.<br/>
-<span class="id" type="keyword">Implicit Arguments</span> <a class="idref" href="Vbase.html#phantom"><span class="id" type="inductive">phantom</span></a> [].<br/>
-<span class="id" type="keyword">Implicit Arguments</span> <a class="idref" href="Vbase.html#Phantom"><span class="id" type="constructor">Phantom</span></a> [].<br/>
-<span class="id" type="keyword">Definition</span> <a name="phant_id"><span class="id" type="definition">phant_id</span></a> <span class="id" type="var">T1</span> <span class="id" type="var">T2</span> <span class="id" type="var">v1</span> <span class="id" type="var">v2</span> := <a class="idref" href="Vbase.html#phantom"><span class="id" type="inductive">phantom</span></a> <a class="idref" href="Vbase.html#T1"><span class="id" type="variable">T1</span></a> <a class="idref" href="Vbase.html#v1"><span class="id" type="variable">v1</span></a> -&gt; <a class="idref" href="Vbase.html#phantom"><span class="id" type="inductive">phantom</span></a> <a class="idref" href="Vbase.html#T2"><span class="id" type="variable">T2</span></a> <a class="idref" href="Vbase.html#v2"><span class="id" type="variable">v2</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="idfun"><span class="id" type="definition">idfun</span></a> <span class="id" type="var">T</span> := (<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a> =&gt; <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="Equality"><span class="id" type="module">Equality</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="Equality.axiom"><span class="id" type="definition">axiom</span></a> <span class="id" type="var">T</span> (<span class="id" type="var">e</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) := <span class="id" type="keyword">forall</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span>, <a class="idref" href="Vbase.html#Equality.reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>) (<a class="idref" href="Vbase.html#e"><span class="id" type="variable">e</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Structure</span> <a name="Equality.mixin_of"><span class="id" type="record">mixin_of</span></a> <span class="id" type="var">T</span> := <a name="Equality.Mixin"><span class="id" type="constructor">Mixin</span></a> {<a name="Equality.op"><span class="id" type="projection">op</span></a> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>; <span class="id" type="var">_</span> : <a class="idref" href="Vbase.html#Equality.axiom"><span class="id" type="definition">axiom</span></a> <a class="idref" href="Vbase.html#op"><span class="id" type="method">op</span></a>}.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.class_of"><span class="id" type="abbreviation">class_of</span></a> := <a class="idref" href="Vbase.html#Equality.mixin_of"><span class="id" type="record">mixin_of</span></a> (<span class="id" type="var">only</span> <span class="id" type="var">parsing</span>).<br/>
-
-<br/>
-<span class="id" type="keyword">Section</span> <a name="Equality.ClassDef"><span class="id" type="section">ClassDef</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Structure</span> <a name="Equality.type"><span class="id" type="record">type</span></a> := <a name="Equality.Pack"><span class="id" type="constructor">Pack</span></a> {<a name="Equality.sort"><span class="id" type="projection">sort</span></a>; <span class="id" type="var">_</span> : <a class="idref" href="Vbase.html#Equality.class_of"><span class="id" type="abbreviation">class_of</span></a> <a class="idref" href="Vbase.html#sort"><span class="id" type="method">sort</span></a>; <span class="id" type="var">_</span> : <span class="id" type="keyword">Type</span>}.<br/>
-<span class="id" type="keyword">Local</span>&nbsp;<span class="id" type="keyword">Coercion</span> <a class="idref" href="Vbase.html#Equality.sort"><span class="id" type="projection">sort</span></a> : <span class="id" type="var">type</span> &gt;-&gt; <span class="id" type="var">Sortclass</span>.<br/>
-<span class="id" type="keyword">Variables</span> (<a name="Equality.ClassDef.T"><span class="id" type="variable">T</span></a> : <span class="id" type="keyword">Type</span>) (<a name="Equality.ClassDef.cT"><span class="id" type="variable">cT</span></a> : <a class="idref" href="Vbase.html#Equality.type"><span class="id" type="record">type</span></a>).<br/>
-<span class="id" type="keyword">Definition</span> <a name="Equality.class"><span class="id" type="definition">class</span></a> <span class="id" type="var">cT'</span> := <span class="id" type="keyword">match</span> <a class="idref" href="Vbase.html#cT'"><span class="id" type="variable">cT'</span></a> <span class="id" type="keyword">return</span> <a class="idref" href="Vbase.html#Equality.class_of"><span class="id" type="abbreviation">class_of</span></a> <a class="idref" href="Vbase.html#cT'"><span class="id" type="variable">cT'</span></a> <span class="id" type="keyword">with</span> <a class="idref" href="Vbase.html#Equality.Pack"><span class="id" type="constructor">Pack</span></a> <span class="id" type="var">_</span> <span class="id" type="var">c</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">c</span> <span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="Equality.pack"><span class="id" type="definition">pack</span></a> <span class="id" type="var">c</span> := @<a class="idref" href="Vbase.html#Equality.Pack"><span class="id" type="constructor">Pack</span></a> <a class="idref" href="Vbase.html#Equality.ClassDef.T"><span class="id" type="variable">T</span></a> <a class="idref" href="Vbase.html#c"><span class="id" type="variable">c</span></a> <a class="idref" href="Vbase.html#Equality.ClassDef.T"><span class="id" type="variable">T</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="Equality.clone"><span class="id" type="definition">clone</span></a> := <span class="id" type="keyword">fun</span> <span class="id" type="var">c</span> (<span class="id" type="var">_</span> : <a class="idref" href="Vbase.html#Equality.ClassDef.cT"><span class="id" type="variable">cT</span></a> -&gt; <a class="idref" href="Vbase.html#Equality.ClassDef.T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">_</span> : <a class="idref" href="Vbase.html#Equality.phant_id"><span class="id" type="definition">phant_id</span></a> (<a class="idref" href="Vbase.html#Equality.pack"><span class="id" type="definition">pack</span></a> <a class="idref" href="Vbase.html#c"><span class="id" type="variable">c</span></a>) <a class="idref" href="Vbase.html#Equality.ClassDef.cT"><span class="id" type="variable">cT</span></a>) =&gt; <a class="idref" href="Vbase.html#Equality.pack"><span class="id" type="definition">pack</span></a> <a class="idref" href="Vbase.html#c"><span class="id" type="variable">c</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#Equality.ClassDef"><span class="id" type="section">ClassDef</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="Equality.Exports"><span class="id" type="module">Exports</span></a>.<br/>
-<span class="id" type="keyword">Coercion</span> <a class="idref" href="Vbase.html#Equality.Exports.sort"><span class="id" type="projection">sort</span></a> : <span class="id" type="var">type</span> &gt;-&gt; <span class="id" type="var">Sortclass</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a> := <a class="idref" href="Vbase.html#Equality.Exports.type"><span class="id" type="record">type</span></a>.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.EqMixin"><span class="id" type="abbreviation">EqMixin</span></a> := <a class="idref" href="Vbase.html#Equality.Exports.Mixin"><span class="id" type="constructor">Mixin</span></a>.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.EqType"><span class="id" type="abbreviation">EqType</span></a> <span class="id" type="var">T</span> <span class="id" type="var">m</span> := (@<a class="idref" href="Vbase.html#Equality.Exports.pack"><span class="id" type="definition">pack</span></a> <span class="id" type="var">T</span> <span class="id" type="var">m</span>).<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.:form_scope:'['_'eqMixin'_'of'_x_']'"><span class="id" type="notation">"</span></a>[ 'eqMixin' 'of' T ]" := (<a class="idref" href="Vbase.html#Equality.Exports.class"><span class="id" type="definition">class</span></a> <span class="id" type="var">_</span> : <a class="idref" href="Vbase.html#Equality.Exports.mixin_of"><span class="id" type="record">mixin_of</span></a> <span class="id" type="var">T</span>)<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 0, <span class="id" type="var">format</span> "[ 'eqMixin'  'of'  T ]") : <span class="id" type="var">form_scope</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.:form_scope:'['_'eqType'_'of'_x_'for'_x_']'"><span class="id" type="notation">"</span></a>[ 'eqType' 'of' T 'for' C ]" := (@<a class="idref" href="Vbase.html#Equality.Exports.clone"><span class="id" type="definition">clone</span></a> <span class="id" type="var">T</span> <span class="id" type="var">C</span> <span class="id" type="var">_</span> <a class="idref" href="Vbase.html#Equality.Exports.idfun"><span class="id" type="definition">idfun</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#id"><span class="id" type="definition">id</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 0, <span class="id" type="var">format</span> "[ 'eqType'  'of'  T  'for'  C ]") : <span class="id" type="var">form_scope</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name="Equality.Exports.:form_scope:'['_'eqType'_'of'_x_']'"><span class="id" type="notation">"</span></a>[ 'eqType' 'of' T ]" := (@<a class="idref" href="Vbase.html#Equality.Exports.clone"><span class="id" type="definition">clone</span></a> <span class="id" type="var">T</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#id"><span class="id" type="definition">id</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#id"><span class="id" type="definition">id</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 0, <span class="id" type="var">format</span> "[ 'eqType'  'of'  T ]") : <span class="id" type="var">form_scope</span>.<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#Exports"><span class="id" type="module">Exports</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="Vbase.html#"><span class="id" type="module">Equality</span></a>.<br/>
-<span class="id" type="keyword">Export</span> <span class="id" type="var">Equality.Exports</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="eq_op"><span class="id" type="definition">eq_op</span></a> <span class="id" type="var">T</span> := <a class="idref" href="Vbase.html#Equality.op"><span class="id" type="projection">Equality.op</span></a> (<a class="idref" href="Vbase.html#Equality.class"><span class="id" type="definition">Equality.class</span></a> <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>).<br/>
-<span class="id" type="keyword">Implicit Arguments</span> <a class="idref" href="Vbase.html#eq_op"><span class="id" type="definition">eq_op</span></a> [[<span class="id" type="var">T</span>]].<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="eqE"><span class="id" type="lemma">eqE</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">T</span> <span class="id" type="var">x</span>, <a class="idref" href="Vbase.html#eq_op"><span class="id" type="definition">eq_op</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#Equality.op"><span class="id" type="projection">Equality.op</span></a> (<a class="idref" href="Vbase.html#Equality.class"><span class="id" type="definition">Equality.class</span></a> <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>) <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="eqP"><span class="id" type="lemma">eqP</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">T</span>, <a class="idref" href="Vbase.html#Equality.axiom"><span class="id" type="definition">Equality.axiom</span></a> (@<a class="idref" href="Vbase.html#eq_op"><span class="id" type="definition">eq_op</span></a> <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>).<br/>
- <span class="id" type="keyword">Implicit Arguments</span> <a class="idref" href="Vbase.html#eqP"><span class="id" type="lemma">eqP</span></a> [<span class="id" type="var">T</span>].<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":bool_scope:x_'=='_x"><span class="id" type="notation">"</span></a>x == y" := (<a class="idref" href="Vbase.html#eq_op"><span class="id" type="definition">eq_op</span></a> <span class="id" type="var">x</span> <span class="id" type="var">y</span>)<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 70, <span class="id" type="keyword">no</span> <span class="id" type="keyword">associativity</span>) : <span class="id" type="var">bool_scope</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name=":bool_scope:x_'=='_x_':>'_x"><span class="id" type="notation">"</span></a>x == y :&gt; T" := (<a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">(</span></a><span class="id" type="var">x</span> : <span class="id" type="var">T</span><a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">(</span></a><span class="id" type="var">y</span> : <span class="id" type="var">T</span><a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">)</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 70, <span class="id" type="var">y</span> <span class="id" type="tactic">at</span> <span class="id" type="var">next</span> <span class="id" type="keyword">level</span>) : <span class="id" type="var">bool_scope</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name=":bool_scope:x_'!='_x"><span class="id" type="notation">"</span></a>x != y" := (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<span class="id" type="var">x</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <span class="id" type="var">y</span>))<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 70, <span class="id" type="keyword">no</span> <span class="id" type="keyword">associativity</span>) : <span class="id" type="var">bool_scope</span>.<br/>
-<span class="id" type="keyword">Notation</span> <a name=":bool_scope:x_'!='_x_':>'_x"><span class="id" type="notation">"</span></a>x != y :&gt; T" := (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> (<span class="id" type="var">x</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x_':>'_x"><span class="id" type="notation">==</span></a> <span class="id" type="var">y</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x_':>'_x"><span class="id" type="notation">:&gt;</span></a> <span class="id" type="var">T</span>))<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 70, <span class="id" type="var">y</span> <span class="id" type="tactic">at</span> <span class="id" type="var">next</span> <span class="id" type="keyword">level</span>) : <span class="id" type="var">bool_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__internal_eqP"><span class="id" type="lemma">vlib__internal_eqP</span></a> : <br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <a class="idref" href="Vbase.html#Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">y</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>), <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>) (<a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="neqP"><span class="id" type="lemma">neqP</span></a> : <span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <a class="idref" href="Vbase.html#Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">y</span>: <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>), <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> (<a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<>'_x"><span class="id" type="notation">&lt;&gt;</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>) (<a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'!='_x"><span class="id" type="notation">!=</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a>).<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="beq_refl"><span class="id" type="lemma">beq_refl</span></a> : <span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span> : <a class="idref" href="Vbase.html#Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a>) (<span class="id" type="var">x</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>), <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="beq_sym"><span class="id" type="lemma">beq_sym</span></a> : <span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span> : <a class="idref" href="Vbase.html#Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">y</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>), <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Hint Resolve</span> <a class="idref" href="Vbase.html#beq_refl"><span class="id" type="lemma">beq_refl</span></a> : <span class="id" type="var">vlib</span>.<br/>
-<span class="id" type="keyword">Hint Rewrite</span> <a class="idref" href="Vbase.html#beq_refl"><span class="id" type="lemma">beq_refl</span></a> : <span class="id" type="var">vlib_trivial</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name="eqxx"><span class="id" type="abbreviation">eqxx</span></a> := <a class="idref" href="Vbase.html#beq_refl"><span class="id" type="lemma">beq_refl</span></a>.<br/>
-
-<br/>
-<span class="comment">(*<br/>
-Implicit&nbsp;Arguments&nbsp;idP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;idPn&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;negP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;negn&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;negPf&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;andP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span> <span class="inlinecode"><span class="id" type="var">b2</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;orP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span> <span class="inlinecode"><span class="id" type="var">b2</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;nandP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span> <span class="inlinecode"><span class="id" type="var">b2</span></span>.<br/>
-Implicit&nbsp;Arguments&nbsp;norP&nbsp;<span class="inlinecode"><span class="id" type="var">b1</span></span> <span class="inlinecode"><span class="id" type="var">b2</span></span>.<br/>
-*)</span><br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab8"></a><h1 class="section">Basic simplification tactics</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__negb_rewrite"><span class="id" type="lemma">vlib__negb_rewrite</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b</span>, <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> <a class="idref" href="Vbase.html#b"><span class="id" type="variable">b</span></a> -&gt; <a class="idref" href="Vbase.html#b"><span class="id" type="variable">b</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__andb_split"><span class="id" type="lemma">vlib__andb_split</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b1</span> <span class="id" type="var">b2</span>, <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__nandb_split"><span class="id" type="lemma">vlib__nandb_split</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b1</span> <span class="id" type="var">b2</span>, <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__orb_split"><span class="id" type="lemma">vlib__orb_split</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b1</span> <span class="id" type="var">b2</span>, <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__norb_split"><span class="id" type="lemma">vlib__norb_split</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b1</span> <span class="id" type="var">b2</span>, <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__eqb_split"><span class="id" type="lemma">vlib__eqb_split</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">b1</span> <span class="id" type="var">b2</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>, (<a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> -&gt; <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a>) -&gt; (<a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a> -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a>) -&gt; <a class="idref" href="Vbase.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#b2"><span class="id" type="variable">b2</span></a>.<br/>
- 
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="vlib__beq_rewrite"><span class="id" type="lemma">vlib__beq_rewrite</span></a> : <span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span> : <a class="idref" href="Vbase.html#Equality.Exports.eqType"><span class="id" type="abbreviation">eqType</span></a>) (<span class="id" type="var">x1</span> <span class="id" type="var">x2</span> : <a class="idref" href="Vbase.html#T"><span class="id" type="variable">T</span></a>), <a class="idref" href="Vbase.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <a class="idref" href="Vbase.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="Vbase.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="Vbase.html#x2"><span class="id" type="variable">x2</span></a>.<br/>
- 
-<br/>
-</div>
-
-<div class="doc">
-Set up for basic simplification: database of reflection lemmas 
-</div>
-<div class="code">
-
-<br/>
-
-<br/>
-<span class="id" type="keyword">Hint Resolve</span> <a class="idref" href="Vbase.html#andP"><span class="id" type="lemma">andP</span></a> <a class="idref" href="Vbase.html#orP"><span class="id" type="lemma">orP</span></a> <a class="idref" href="Vbase.html#nandP"><span class="id" type="lemma">nandP</span></a> <a class="idref" href="Vbase.html#norP"><span class="id" type="lemma">norP</span></a> <a class="idref" href="Vbase.html#negP"><span class="id" type="lemma">negP</span></a> <a class="idref" href="Vbase.html#vlib__internal_eqP"><span class="id" type="lemma">vlib__internal_eqP</span></a> <a class="idref" href="Vbase.html#neqP"><span class="id" type="lemma">neqP</span></a> : <span class="id" type="var">vlib_refl</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">X</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> | [|- ?<span class="id" type="var">P</span> ] =&gt; <span class="id" type="tactic">set</span> (<span class="id" type="var">X</span> := <span class="id" type="var">P</span>) <span class="id" type="keyword">end</span>);<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">injection</span> <span class="id" type="var">H</span>;<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;&nbsp;(lazymatch&nbsp;goal&nbsp;with&nbsp;|&nbsp;<span class="inlinecode"></span> <span class="inlinecode">|-</span> <span class="inlinecode"><span class="id" type="var">f</span></span> <span class="inlinecode"><span class="id" type="var">_</span></span> <span class="inlinecode">=</span> <span class="inlinecode"><span class="id" type="var">f</span></span> <span class="inlinecode"><span class="id" type="var">_</span></span> <span class="inlinecode">-&gt;</span> <span class="inlinecode"><span class="id" type="var">_</span></span>&nbsp;=&gt;&nbsp;fail&nbsp;|&nbsp;_&nbsp;=&gt;&nbsp;idtac&nbsp;end);&nbsp;&nbsp;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Previous&nbsp;statement&nbsp;no&nbsp;longer&nbsp;necessary&nbsp;in&nbsp;8.4&nbsp;*)</span>&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span>; <span class="id" type="tactic">subst</span> <span class="id" type="var">X</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="tactic">subst</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vlib__clarify1</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="tactic">subst</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#andb"><span class="id" type="definition">andb</span></a> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span>] =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__andb_split"><span class="id" type="lemma">vlib__andb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H'</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#negb"><span class="id" type="definition">negb</span></a> ?<span class="id" type="var">x</span>) |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">rewrite</span> (<a class="idref" href="Vbase.html#vlib__negb_rewrite"><span class="id" type="lemma">vlib__negb_rewrite</span></a> <span class="id" type="var">H</span>) <span class="id" type="keyword">in</span> *<br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> ?<span class="id" type="var">x</span>        |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">rewrite</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> *<br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#true"><span class="id" type="constructor">true</span></a>         |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">rewrite</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> *<br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>        |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">rewrite</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> *<br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <span class="id" type="var">_</span>)  |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">generalize</span> (<a class="idref" href="Vbase.html#vlib__beq_rewrite"><span class="id" type="lemma">vlib__beq_rewrite</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intro</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: @<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#existT"><span class="id" type="constructor">existT</span></a> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> @<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#existT"><span class="id" type="constructor">existT</span></a> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="tactic">apply</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Logic.ProofIrrelevance.html#ProofIrrelevanceTheory.EqdepTheory.inj_pair2"><span class="id" type="lemma">inj_pair2</span></a> <span class="id" type="keyword">in</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">try</span> <span class="id" type="tactic">subst</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span>             <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span>             |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>           <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>           |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>         <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>         |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>       <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>       |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>     <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>     |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>   <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>   |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;| [<span class="id" type="var">H</span>: ?<span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">f</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> |- <span class="id" type="var">_</span>] =&gt; <span class="id" type="var">vlib__complaining_inj</span> <span class="id" type="var">f</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Perform injections &amp; discriminations on all hypotheses 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">clarify</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="var">vlib__clarify1</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H1</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">_</span>, <span class="id" type="var">H2</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>   |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">rewrite</span> <span class="id" type="var">H2</span> <span class="id" type="keyword">in</span> <span class="id" type="var">H1</span>; <span class="id" type="tactic">discriminate</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H1</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">_</span>, <span class="id" type="var">H2</span>: ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">_</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">rewrite</span> <span class="id" type="var">H2</span> <span class="id" type="keyword">in</span> <span class="id" type="var">H1</span>; <span class="id" type="var">vlib__clarify1</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>; <span class="comment">(*&nbsp;autorewrite&nbsp;with&nbsp;vlib_trivial;&nbsp;*)</span> <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Kill simple goals that require up to two econstructor calls. 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vauto</span> :=<br/>
-&nbsp;&nbsp;(<span class="id" type="var">clarify</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">edone</span>; <br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> (<span class="id" type="tactic">econstructor</span> (<span class="id" type="tactic">solve</span> [<span class="id" type="var">edone</span> | <span class="id" type="tactic">econstructor</span> (<span class="id" type="var">edone</span>) ]))).<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Check that the hypothesis <span class="inlinecode"><span class="id" type="var">id</span></span> is defined. This is useful to make sure that
-    an <span class="inlinecode"><span class="id" type="tactic">assert</span></span> has been completely finished. 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">end_assert</span> <span class="id" type="var">id</span> := <br/>
-&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">m</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span> <br/>
-&nbsp;&nbsp;<span class="id" type="tactic">pose</span> (<span class="id" type="var">m</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#refl_equal"><span class="id" type="abbreviation">refl_equal</span></a> <span class="id" type="var">id</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">m</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">inv</span> <span class="id" type="var">x</span> := <span class="id" type="tactic">inversion</span> <span class="id" type="var">x</span>; <span class="id" type="var">clarify</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">simpls</span>  := <span class="id" type="tactic">simpl</span> <span class="id" type="keyword">in</span> *; <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">ins</span> := <span class="id" type="tactic">simpl</span> <span class="id" type="keyword">in</span> *; <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>; <span class="id" type="tactic">intros</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "case_eq" <span class="id" type="keyword">constr</span>(<span class="id" type="var">x</span>) := <span class="id" type="var">case_eq</span> (<span class="id" type="var">x</span>).<br/>
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "case_eq" <span class="id" type="keyword">constr</span>(<span class="id" type="var">x</span>) "as" <span class="id" type="var">simple_intropattern</span>(<span class="id" type="var">H</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span> <span class="id" type="keyword">as</span> [] <span class="id" type="var">_eqn</span>: <span class="id" type="var">H</span>; <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vlib__clarsimp1</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="var">clarify</span>; (<span class="id" type="tactic">autorewrite</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_trivial</span> <span class="id" type="var">vlib</span> <span class="id" type="keyword">in</span> * ); <br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">autorewrite</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_trivial</span> <span class="id" type="keyword">in</span> * ); <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="var">clarify</span>; <span class="id" type="tactic">auto</span> 1 <span class="id" type="keyword">with</span> <span class="id" type="var">vlib</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">clarsimp</span> := <span class="id" type="tactic">intros</span>; <span class="id" type="tactic">simpl</span> <span class="id" type="keyword">in</span> *; <span class="id" type="var">vlib__clarsimp1</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">autos</span>   := <span class="id" type="var">clarsimp</span>; <span class="id" type="tactic">auto</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-Destruct but give useful names 
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">A</span> (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#unit"><span class="id" type="inductive">unit</span></a> -&gt; <a class="idref" href="Vbase.html#A"><span class="id" type="variable">A</span></a>) : <a class="idref" href="Vbase.html#A"><span class="id" type="variable">A</span></a> := <a class="idref" href="Vbase.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#tt"><span class="id" type="constructor">tt</span></a>.<br/>
-
-<br/>
-<span class="comment">(*Notation&nbsp;"&lt;&lt;&nbsp;x&nbsp;:&nbsp;t&nbsp;&gt;&gt;"&nbsp;:=&nbsp;(NW&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;t))&nbsp;(at&nbsp;level&nbsp;80,&nbsp;x&nbsp;ident,&nbsp;no&nbsp;associativity).<br/>
-Notation&nbsp;"&lt;&lt;&nbsp;t&nbsp;&gt;&gt;"&nbsp;:=&nbsp;(NW&nbsp;(fun&nbsp;_&nbsp;=&gt;&nbsp;t))&nbsp;(at&nbsp;level&nbsp;79,&nbsp;no&nbsp;associativity).*)</span><br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">unnw</span> := <span class="id" type="tactic">unfold</span> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="keyword">in</span> *.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">rednw</span> := <span class="id" type="tactic">red</span>; <span class="id" type="var">unnw</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Hint Unfold</span> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Destruct, but no case split 
-</div>
-<div class="code">
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">desc</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">generalize</span> (<a class="idref" href="Vbase.html#vlib__beq_rewrite"><span class="id" type="lemma">vlib__beq_rewrite</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intro</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">y</span> =&gt; <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">x</span> <span class="id" type="keyword">in</span> <span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">y</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">y'</span>]; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">?</span></a><span class="id" type="var">p</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">x</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">H</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">q</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">y'</span>];<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">x'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__andb_split"><span class="id" type="lemma">vlib__andb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span> <span class="id" type="var">H'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <span class="id" type="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__norb_split"><span class="id" type="lemma">vlib__norb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span> <span class="id" type="var">H'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">x</span>   |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span><br/>
-<br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;is_true&nbsp;?x&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimT&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;true&nbsp;&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimT&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;false&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimFn&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;false&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimF&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span>&nbsp;&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="Vbase.html#:bool_scope:x_'=='_x"><span class="id" type="notation">==</span></a> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">generalize</span> (<a class="idref" href="Vbase.html#vlib__beq_rewrite"><span class="id" type="lemma">vlib__beq_rewrite</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intro</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">y</span> =&gt; <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">x</span> <span class="id" type="keyword">in</span> <span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">y</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">y'</span>]; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">?</span></a><span class="id" type="var">p</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">x</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">H</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">exists2</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">q</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">x</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">H1</span> <span class="id" type="var">H2</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">q</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">y'</span>];<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">x'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__andb_split"><span class="id" type="lemma">vlib__andb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span> <span class="id" type="var">H'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <span class="id" type="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H'</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">in</span> <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__norb_split"><span class="id" type="lemma">vlib__norb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span> <span class="id" type="var">H'</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">x</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;is_true&nbsp;?x&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimT&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;true&nbsp;&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimT&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;false&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimFn&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;H:&nbsp;?x&nbsp;=&nbsp;false&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;eapply&nbsp;elimF&nbsp;in&nbsp;H;&nbsp;<span class="inlinecode">|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]</span>&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">q</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> <span class="id" type="var">y'</span>];<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">unfold</span> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="tactic">at</span> 1 <span class="id" type="keyword">in</span> <span class="id" type="var">x'</span>; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">unfold</span> <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="tactic">at</span> 1 <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span>; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">x'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : ?<span class="id" type="var">p</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">?</span></a><span class="id" type="var">q</span> |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">x'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">y'</span> := <span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> (<span class="id" type="keyword">fun</span> <span class="id" type="var">z</span> =&gt; <span class="id" type="var">_</span>) =&gt; <span class="id" type="tactic">fresh</span> <span class="id" type="var">z</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="var">H</span> <span class="id" type="keyword">end</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">destruct</span> <span class="id" type="var">H</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">x'</span> | <span class="id" type="var">y'</span>];<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ <span class="id" type="keyword">match</span> <span class="id" type="var">p</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">x'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="keyword">match</span> <span class="id" type="var">q</span> <span class="id" type="keyword">with</span> | <a class="idref" href="Vbase.html#NW"><span class="id" type="definition">NW</span></a> <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">red</span> <span class="id" type="keyword">in</span> <span class="id" type="var">y'</span> | <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">idtac</span> <span class="id" type="keyword">end</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="Vbase.html#is_true"><span class="id" type="definition">is_true</span></a> (<span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <span class="id" type="var">_</span>) |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__orb_split"><span class="id" type="lemma">vlib__orb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intro</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="var">_</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">case</span> (<a class="idref" href="Vbase.html#vlib__nandb_split"><span class="id" type="lemma">vlib__nandb_split</span></a> <span class="id" type="var">H</span>); <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">intro</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des_if_asm</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="var">clarify</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="keyword">context</span>[ <span class="id" type="keyword">match</span> ?<span class="id" type="var">x</span> <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> ] |- <span class="id" type="var">_</span> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> (<span class="id" type="var">type</span> <span class="id" type="var">of</span> <span class="id" type="var">x</span>) <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> =&gt; <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">P</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">evar</span>(<span class="id" type="var">P</span>: <span class="id" type="keyword">Prop</span>);<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">Heq</span>: <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <span class="id" type="var">x</span>) <span class="id" type="tactic">by</span> (<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_refl</span>); <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">Heq</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">Heq</span>|<span class="id" type="var">Heq</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span> <span class="id" type="keyword">as</span> [] <span class="id" type="var">_eqn</span>: <span class="id" type="var">Heq</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des_if_goal</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="var">clarify</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| |- <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">x</span> <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span>] =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> (<span class="id" type="var">type</span> <span class="id" type="var">of</span> <span class="id" type="var">x</span>) <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> =&gt; <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">P</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">evar</span>(<span class="id" type="var">P</span>: <span class="id" type="keyword">Prop</span>);<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">Heq</span>: <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <span class="id" type="var">x</span>) <span class="id" type="tactic">by</span> (<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_refl</span>); <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">Heq</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">Heq</span>|<span class="id" type="var">Heq</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span> <span class="id" type="keyword">as</span> [] <span class="id" type="var">_eqn</span>: <span class="id" type="var">Heq</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des_if</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="var">clarify</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">repeat</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| |- <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">x</span> <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span>] =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> (<span class="id" type="var">type</span> <span class="id" type="var">of</span> <span class="id" type="var">x</span>) <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> =&gt; <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">P</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">evar</span>(<span class="id" type="var">P</span>: <span class="id" type="keyword">Prop</span>);<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">Heq</span>: <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <span class="id" type="var">x</span>) <span class="id" type="tactic">by</span> (<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_refl</span>); <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">Heq</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">Heq</span>|<span class="id" type="var">Heq</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span> <span class="id" type="keyword">as</span> [] <span class="id" type="var">_eqn</span>: <span class="id" type="var">Heq</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="keyword">context</span>[ <span class="id" type="keyword">match</span> ?<span class="id" type="var">x</span> <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> ] |- <span class="id" type="var">_</span> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> (<span class="id" type="var">type</span> <span class="id" type="var">of</span> <span class="id" type="var">x</span>) <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">+</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">{</span></a> <span class="id" type="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Specif.html#:type_scope:'{'_x_'}'_'+'_'{'_x_'}'"><span class="id" type="notation">}</span></a> =&gt; <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a> =&gt; <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">P</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">evar</span>(<span class="id" type="var">P</span>: <span class="id" type="keyword">Prop</span>);<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">Heq</span>: <a class="idref" href="Vbase.html#reflect"><span class="id" type="inductive">reflect</span></a> <span class="id" type="var">P</span> <span class="id" type="var">x</span>) <span class="id" type="tactic">by</span> (<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">trivial</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_refl</span>); <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">subst</span> <span class="id" type="var">P</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">Heq</span> <span class="id" type="keyword">as</span> [<span class="id" type="var">Heq</span>|<span class="id" type="var">Heq</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="keyword">let</span> <span class="id" type="var">Heq</span> := <span class="id" type="tactic">fresh</span> "Heq" <span class="id" type="keyword">in</span> <span class="id" type="tactic">destruct</span> <span class="id" type="var">x</span> <span class="id" type="keyword">as</span> [] <span class="id" type="var">_eqn</span>: <span class="id" type="var">Heq</span>; <span class="id" type="var">clarify</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des_eqrefl</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">X</span> <span class="id" type="keyword">as</span> <span class="id" type="var">id</span> <span class="id" type="keyword">return</span> (<a class="idref" href="Vbase.html#id"><span class="id" type="variable">id</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">X</span> -&gt; <span class="id" type="var">_</span>) <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a>] |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">EQ</span> := <span class="id" type="tactic">fresh</span> "EQ" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">id'</span> := <span class="id" type="tactic">fresh</span> "x" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">revert</span> <span class="id" type="var">H</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">generalize</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a> <span class="id" type="var">X</span>); <span class="id" type="tactic">generalize</span> <span class="id" type="var">X</span> <span class="id" type="tactic">at</span> 1 3;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">intros</span> <span class="id" type="var">id'</span> <span class="id" type="var">EQ</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">id'</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| |- <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">X</span> <span class="id" type="keyword">as</span> <span class="id" type="var">id</span> <span class="id" type="keyword">return</span> (<a class="idref" href="Vbase.html#id"><span class="id" type="variable">id</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">?</span></a><span class="id" type="var">X</span> -&gt; <span class="id" type="var">_</span>) <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a>] =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">EQ</span> := <span class="id" type="tactic">fresh</span> "EQ" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">id'</span> := <span class="id" type="tactic">fresh</span> "x" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">generalize</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a> <span class="id" type="var">X</span>); <span class="id" type="tactic">generalize</span> <span class="id" type="var">X</span> <span class="id" type="tactic">at</span> 1 3;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">intros</span> <span class="id" type="var">id'</span> <span class="id" type="var">EQ</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">id'</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">desf_asm</span> := <span class="id" type="var">clarify</span>; <span class="id" type="var">des</span>; <span class="id" type="var">des_if_asm</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">desf</span> := <span class="id" type="var">clarify</span>; <span class="id" type="var">des</span>; <span class="id" type="var">des_if</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">clarassoc</span> := <span class="id" type="var">clarsimp</span>; <span class="id" type="tactic">autorewrite</span> <span class="id" type="keyword">with</span> <span class="id" type="var">vlib_trivial</span> <span class="id" type="var">vlib</span> <span class="id" type="var">vlibA</span> <span class="id" type="keyword">in</span> *; <span class="id" type="tactic">try</span> <span class="id" type="var">done</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">vlib__hacksimp1</span> :=<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">clarsimp</span>;<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="var">_</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">rewrite</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="var">clarsimp</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<span class="id" type="tactic">rewrite</span> &lt;- <span class="id" type="var">H</span>; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="var">clarsimp</span>]<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">f_equal</span>; <span class="id" type="var">clarsimp</span>]<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">hacksimp</span> :=<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">clarsimp</span>;<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">try</span> <span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="var">_</span> |- <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">rewrite</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="var">clarsimp</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<span class="id" type="tactic">rewrite</span> &lt;- <span class="id" type="var">H</span>; <span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>; <span class="id" type="var">clarsimp</span>]<br/>
-&nbsp;&nbsp;&nbsp;| |- <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">p</span> <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span>] =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">destruct</span> <span class="id" type="var">p</span>; <span class="id" type="var">vlib__hacksimp1</span>]<br/>
-&nbsp;&nbsp;&nbsp;| <span class="id" type="var">_</span> =&gt; <span class="id" type="tactic">solve</span> [<span class="id" type="tactic">f_equal</span>; <span class="id" type="var">clarsimp</span>]<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab9"></a><h2 class="section">Delineating cases in proofs</h2>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Named case tactics (taken from Libtactics) 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "assert_eq" <span class="id" type="var">ident</span>(<span class="id" type="var">x</span>) <span class="id" type="keyword">constr</span>(<span class="id" type="var">v</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">H</span> := <span class="id" type="tactic">fresh</span> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="var">v</span>) <span class="id" type="keyword">as</span> <span class="id" type="var">H</span> <span class="id" type="tactic">by</span> <span class="id" type="tactic">reflexivity</span>;<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">clear</span> <span class="id" type="var">H</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "Case_aux" <span class="id" type="var">ident</span>(<span class="id" type="var">x</span>) <span class="id" type="keyword">constr</span>(<span class="id" type="var">name</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">first</span> [<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">set</span> (<span class="id" type="var">x</span> := <span class="id" type="var">name</span>); <span class="id" type="tactic">move</span> <span class="id" type="var">x</span> <span class="id" type="tactic">at</span> <span class="id" type="var">top</span><br/>
-&nbsp;&nbsp;| <span class="id" type="var">assert_eq</span> <span class="id" type="var">x</span> <span class="id" type="var">name</span><br/>
-&nbsp;&nbsp;| <span class="id" type="tactic">fail</span> 1 "because we are working on a different case." ].<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">Case</span> <span class="id" type="var">name</span> := <span class="id" type="var">Case_aux</span> <span class="id" type="tactic">case</span> <span class="id" type="var">name</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">SCase</span> <span class="id" type="var">name</span> := <span class="id" type="var">Case_aux</span> <span class="id" type="var">subcase</span> <span class="id" type="var">name</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">SSCase</span> <span class="id" type="var">name</span> := <span class="id" type="var">Case_aux</span> <span class="id" type="var">subsubcase</span> <span class="id" type="var">name</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">SSSCase</span> <span class="id" type="var">name</span> := <span class="id" type="var">Case_aux</span> <span class="id" type="var">subsubsubcase</span> <span class="id" type="var">name</span>.<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">SSSSCase</span> <span class="id" type="var">name</span> := <span class="id" type="var">Case_aux</span> <span class="id" type="var">subsubsubsubcase</span> <span class="id" type="var">name</span>.<br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Lightweight case tactics (without names) 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "--" <span class="id" type="var">tactic</span>(<span class="id" type="var">c</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">first</span> [<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">WithinCaseM</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#True"><span class="id" type="inductive">True</span></a>); <span class="id" type="tactic">move</span> <span class="id" type="var">WithinCaseM</span> <span class="id" type="tactic">at</span> <span class="id" type="var">top</span><br/>
-&nbsp;&nbsp;| <span class="id" type="tactic">fail</span> 1 "because we are working on a different case." ]; <span class="id" type="var">c</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Tactic Notation</span> "++" <span class="id" type="var">tactic</span>(<span class="id" type="var">c</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="tactic">first</span> [<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">assert</span> (<span class="id" type="var">WithinCaseP</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#True"><span class="id" type="inductive">True</span></a>); <span class="id" type="tactic">move</span> <span class="id" type="var">WithinCaseP</span> <span class="id" type="tactic">at</span> <span class="id" type="var">top</span><br/>
-&nbsp;&nbsp;| <span class="id" type="tactic">fail</span> 1 "because we are working on a different case." ]; <span class="id" type="var">c</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab10"></a><h2 class="section">Exploiting a hypothesis</h2>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-</div>
-
-<div class="doc">
-Exploit an assumption (adapted from CompCert). 
-</div>
-<div class="code">
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">exploit</span> <span class="id" type="var">x</span> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>)<br/>
-&nbsp;|| <span class="id" type="tactic">refine</span> ((<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <a class="idref" href="Vbase.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="Vbase.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">_</span>) <span class="id" type="var">_</span>).<br/>
-
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-</div>
-
-<div class="doc">
-<a name="lab11"></a><h1 class="section">Induction</h1>
-
-</div>
-<div class="code">
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-
-<br/>
-<span class="comment">(*<br/>
-Tactic&nbsp;Notation&nbsp;"induction"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induction"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode">"</span>"&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induction"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode"><span class="id" type="var">ident</span></span> <span class="inlinecode">(<span class="id" type="var">w</span>)</span> <span class="inlinecode">"</span>"&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>,</span> <span class="inlinecode"><span class="id" type="var">w</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>,</span> <span class="inlinecode"><span class="id" type="var">w</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-<span class="comment">(**&nbsp;Versions&nbsp;with&nbsp;hacksimp&nbsp;*)</span><br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;ident(x)&nbsp;:=&nbsp;induction&nbsp;x;&nbsp;hacksimp.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode">"</span>"&nbsp;:=&nbsp;<br/>
-&nbsp;&nbsp;induction&nbsp;x;&nbsp;destruct&nbsp;z;&nbsp;hacksimp.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">w</span>)</span> <span class="inlinecode">"</span>"&nbsp;:=&nbsp;<br/>
-&nbsp;&nbsp;induction&nbsp;x;&nbsp;destruct&nbsp;z,&nbsp;w;&nbsp;hacksimp.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode">"</span>"&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"induct"&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident_list</span>(<span class="id" type="var">y</span>)</span> <span class="inlinecode">"</span>"&nbsp;ident(x)&nbsp;"<span class="inlinecode">"</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">z</span>)</span> <span class="inlinecode"><span class="id" type="var">ident</span>(<span class="id" type="var">w</span>)</span> <span class="inlinecode">"</span>"&nbsp;&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"></span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>,</span> <span class="inlinecode"><span class="id" type="var">w</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode">(<span class="id" type="tactic">intros</span></span> <span class="inlinecode"><span class="id" type="tactic">until</span></span> <span class="inlinecode"><span class="id" type="var">x</span>);</span> <span class="inlinecode"><span class="id" type="var">revert</span></span> <span class="inlinecode"><span class="id" type="var">y</span>;</span> <span class="inlinecode"><span class="id" type="tactic">induction</span></span> <span class="inlinecode"><span class="id" type="var">x</span>;</span> <span class="inlinecode"><span class="id" type="tactic">destruct</span></span> <span class="inlinecode"><span class="id" type="var">z</span>,</span> <span class="inlinecode"><span class="id" type="var">w</span>;</span> <span class="inlinecode"><span class="id" type="var">hacksimp</span></span> <span class="inlinecode"></span>.<br/>
-<br/>
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<span class="comment">(**&nbsp;*&nbsp;Views&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<br/>
-Ltac&nbsp;vlib__apply_refl&nbsp;:=<br/>
-&nbsp;&nbsp;intros;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;match&nbsp;goal&nbsp;with&nbsp;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|-&nbsp;is_true&nbsp;?p&nbsp;=&gt;&nbsp;eapply&nbsp;introT;&nbsp;<span class="inlinecode"><span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]|</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|-&nbsp;?p&nbsp;=&nbsp;true&nbsp;=&gt;&nbsp;eapply&nbsp;introT;&nbsp;<span class="inlinecode"><span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]|</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|-&nbsp;?p&nbsp;=&nbsp;false&nbsp;=&gt;&nbsp;eapply&nbsp;introFn;&nbsp;<span class="inlinecode"><span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]|</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|-&nbsp;?p&nbsp;=&nbsp;false&nbsp;=&gt;&nbsp;eapply&nbsp;introF;&nbsp;<span class="inlinecode"><span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]|</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|-&nbsp;_&nbsp;=&gt;&nbsp;red;&nbsp;vlib__apply_refl<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;end.&nbsp;<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"apply"&nbsp;"/"&nbsp;:=&nbsp;vlib__apply_refl.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"apply"&nbsp;"/"&nbsp;constr(X)&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span></span> <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimT</span>;</span> <span class="inlinecode">[<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|]</span>
-    <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">introT</span>;</span> <span class="inlinecode">[<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|]</span>
-    <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">introFn</span>;</span> <span class="inlinecode">[<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|]</span>
-    <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">introF</span>;</span> <span class="inlinecode">[<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|]</span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"split"&nbsp;"/"&nbsp;:=&nbsp;<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"><span class="id" type="tactic">split</span></span> <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">hnf</span>;</span> <span class="inlinecode"><span class="id" type="tactic">intros</span>;</span> <span class="inlinecode"><span class="id" type="tactic">apply</span>/</span> <span class="inlinecode">;</span> <span class="inlinecode"><span class="id" type="tactic">split</span></span>
-        <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">try</span></span> <span class="inlinecode"><span class="id" type="tactic">red</span>;</span> <span class="inlinecode"><span class="id" type="tactic">intros</span>;</span> <span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">vlib__eqb_split</span></span>.<br/>
-<br/>
-<span class="comment">(**&nbsp;apply&nbsp;in&nbsp;assumption&nbsp;*)</span><br/>
-<br/>
-Ltac&nbsp;vlib__apply_refl_in&nbsp;H&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimT</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]]</span>
-        <span class="inlinecode">|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimFn</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]]</span>
-        <span class="inlinecode">|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimF</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">solve</span></span> <span class="inlinecode">[<span class="id" type="tactic">trivial</span></span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="var">vlib_refl</span>]]</span>.<br/>
-<br/>
-Ltac&nbsp;vlib__apply_with_in&nbsp;X&nbsp;H&nbsp;:=<br/>
-&nbsp;&nbsp;first&nbsp;<span class="inlinecode"><span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span></span>
-        <span class="inlinecode">|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimT</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>]</span>
-        <span class="inlinecode">|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimFn</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>]</span>
-        <span class="inlinecode">|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">elimF</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">H</span>;</span> <span class="inlinecode">[|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">X</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>]</span>.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"apply"&nbsp;"/"&nbsp;"in"&nbsp;hyp(H)&nbsp;:=&nbsp;vlib__apply_refl_in&nbsp;H.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"apply"&nbsp;"/"&nbsp;constr(X)&nbsp;"in"&nbsp;hyp(H)&nbsp;:=&nbsp;vlib__apply_with_in&nbsp;X&nbsp;H.<br/>
-<br/>
-<span class="comment">(**&nbsp;move&nbsp;(apply&nbsp;to&nbsp;top&nbsp;of&nbsp;goal)&nbsp;*)</span><br/>
-<br/>
-Ltac&nbsp;vlib__move_refl&nbsp;:=&nbsp;let&nbsp;top&nbsp;:=&nbsp;fresh&nbsp;in&nbsp;intro&nbsp;top;&nbsp;vlib__apply_refl_in&nbsp;top;&nbsp;revert&nbsp;top.&nbsp;<br/>
-Ltac&nbsp;vlib__move_with&nbsp;X&nbsp;:=&nbsp;let&nbsp;top&nbsp;:=&nbsp;fresh&nbsp;in&nbsp;intro&nbsp;top;&nbsp;vlib__apply_with_in&nbsp;X&nbsp;top;&nbsp;revert&nbsp;top.&nbsp;<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;":"&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"<br/>
-&nbsp;&nbsp;:=&nbsp;vlib__move_refl.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;":"&nbsp;ident_list(Y)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_refl.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;vlib__move_refl;&nbsp;intros&nbsp;L.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_refl;&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;constr(X)&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_with&nbsp;X.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;constr(X)&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_with&nbsp;X;&nbsp;intros&nbsp;L.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;constr(X)&nbsp;":"&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_with&nbsp;X.<br/>
-Tactic&nbsp;Notation&nbsp;"move"&nbsp;"/"&nbsp;constr(X)&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__move_with&nbsp;X;&nbsp;intros&nbsp;L.<br/>
-<br/>
-<br/>
-<span class="comment">(**&nbsp;case&nbsp;*)</span><br/>
-<br/>
-Ltac&nbsp;vlib__case_plain<br/>
-&nbsp;&nbsp;:=&nbsp;let&nbsp;top&nbsp;:=&nbsp;fresh&nbsp;in&nbsp;intro&nbsp;top;&nbsp;case&nbsp;top;&nbsp;clear&nbsp;top.<br/>
-Ltac&nbsp;vlib__case_refl<br/>
-&nbsp;&nbsp;:=&nbsp;let&nbsp;top&nbsp;:=&nbsp;fresh&nbsp;in&nbsp;intro&nbsp;top;&nbsp;vlib__apply_refl_in&nbsp;top;&nbsp;case&nbsp;top;&nbsp;clear&nbsp;top.&nbsp;<br/>
-Ltac&nbsp;vlib__case_with&nbsp;X&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;let&nbsp;top&nbsp;:=&nbsp;fresh&nbsp;in&nbsp;intro&nbsp;top;&nbsp;vlib__apply_with_in&nbsp;X&nbsp;top;&nbsp;case&nbsp;top;&nbsp;clear&nbsp;top.&nbsp;<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;vlib__case_plain;&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;":"&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_plain.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_plain;&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"<br/>
-&nbsp;&nbsp;:=&nbsp;vlib__case_refl.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;":"&nbsp;ident_list(Y)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_refl.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;vlib__case_refl;&nbsp;intros&nbsp;L.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)&nbsp;<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_refl;&nbsp;intros&nbsp;L.<br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;constr(X)&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_with&nbsp;X.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;constr(X)&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_with&nbsp;X;&nbsp;intros&nbsp;L.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;constr(X)&nbsp;":"&nbsp;ident_list(Y)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_with&nbsp;X.<br/>
-Tactic&nbsp;Notation&nbsp;"case"&nbsp;"/"&nbsp;constr(X)&nbsp;":"&nbsp;ident_list(Y)&nbsp;"=&gt;"&nbsp;simple_intropattern_list(L)<br/>
-&nbsp;&nbsp;:=&nbsp;revert&nbsp;Y;&nbsp;vlib__case_with&nbsp;X;&nbsp;intros&nbsp;L.<br/>
-<br/>
-<span class="comment">(**&nbsp;double&nbsp;apply&nbsp;*)</span><br/>
-<br/>
-Tactic&nbsp;Notation&nbsp;"apply"&nbsp;"/"&nbsp;constr(X1)&nbsp;"/"&nbsp;constr(X2)&nbsp;:=<br/>
-&nbsp;&nbsp;eapply&nbsp;sameP;&nbsp;<span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">X1</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|<span class="id" type="tactic">eapply</span></span> <span class="inlinecode"><span class="id" type="var">iffP</span>;</span> <span class="inlinecode">[<span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">X2</span>;</span> <span class="inlinecode"><span class="id" type="var">edone</span>|<span class="id" type="tactic">instantiate</span>|<span class="id" type="tactic">instantiate</span>]</span>.<br/>
-<br/>
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<span class="comment">(**&nbsp;*&nbsp;Function&nbsp;notation&nbsp;ported&nbsp;from&nbsp;ssrfun.v&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<br/>
-Delimit&nbsp;Scope&nbsp;fun_scope&nbsp;with&nbsp;FUN.<br/>
-Open&nbsp;Scope&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"f&nbsp;^~&nbsp;y"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;f&nbsp;x&nbsp;y)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;10,&nbsp;y&nbsp;at&nbsp;level&nbsp;8,&nbsp;no&nbsp;associativity,&nbsp;format&nbsp;"f&nbsp;^~&nbsp;&nbsp;y")&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Module&nbsp;Option.<br/>
-<br/>
-Definition&nbsp;apply&nbsp;aT&nbsp;rT&nbsp;(f&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;rT)&nbsp;x&nbsp;u&nbsp;:=&nbsp;<br/>
-&nbsp;&nbsp;match&nbsp;u&nbsp;with<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;Some&nbsp;y&nbsp;=&gt;&nbsp;f&nbsp;y&nbsp;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;None&nbsp;=&gt;&nbsp;x<br/>
-&nbsp;&nbsp;end.<br/>
-<br/>
-Definition&nbsp;default&nbsp;T&nbsp;:=&nbsp;apply&nbsp;(fun&nbsp;x&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;x).<br/>
-<br/>
-Definition&nbsp;bind&nbsp;aT&nbsp;rT&nbsp;(f&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;option&nbsp;rT)&nbsp;:=&nbsp;apply&nbsp;f&nbsp;None.<br/>
-<br/>
-Definition&nbsp;map&nbsp;aT&nbsp;rT&nbsp;(f&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;rT)&nbsp;:=&nbsp;bind&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;Some&nbsp;(f&nbsp;x)).<br/>
-<br/>
-End&nbsp;Option.<br/>
-<br/>
-Notation&nbsp;oapp&nbsp;:=&nbsp;Option.apply.<br/>
-Notation&nbsp;odflt&nbsp;:=&nbsp;Option.default.<br/>
-Notation&nbsp;obind&nbsp;:=&nbsp;Option.bind.<br/>
-Notation&nbsp;omap&nbsp;:=&nbsp;Option.map.<br/>
-Notation&nbsp;some&nbsp;:=&nbsp;(@Some&nbsp;_)&nbsp;(only&nbsp;parsing).<br/>
-<br/>
-<span class="comment">(**&nbsp;Definitions&nbsp;and&nbsp;notation&nbsp;for&nbsp;explicit&nbsp;functions&nbsp;with&nbsp;simplification.&nbsp;*)</span><br/>
-<br/>
-Section&nbsp;SimplFun.<br/>
-<br/>
-Variables&nbsp;aT&nbsp;rT&nbsp;:&nbsp;Type.<br/>
-<br/>
-Inductive&nbsp;simpl_fun&nbsp;:&nbsp;Type&nbsp;:=&nbsp;SimplFun&nbsp;(_&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;rT).<br/>
-<br/>
-Definition&nbsp;fun_of_simpl&nbsp;:=&nbsp;fun&nbsp;f&nbsp;x&nbsp;=&gt;&nbsp;match&nbsp;f&nbsp;with&nbsp;SimplFun&nbsp;lam&nbsp;=&gt;&nbsp;lam&nbsp;x&nbsp;end.&nbsp;<br/>
-<br/>
-Coercion&nbsp;fun_of_simpl&nbsp;:&nbsp;simpl_fun&nbsp;&gt;-&gt;&nbsp;Funclass.<br/>
-<br/>
-End&nbsp;SimplFun.<br/>
-<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(SimplFun&nbsp;(fun&nbsp;_&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;E))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"'<span class="inlinecode"><span class="id" type="var">hv'</span></span> <span class="inlinecode">[</span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode">:</span>  <span class="inlinecode"><span class="id" type="var">T</span></span>  <span class="inlinecode">=&gt;</span> <span class="inlinecode">'/</span> <span class="inlinecode">'</span>  <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode">]</span> <span class="inlinecode">'</span>'")&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(SimplFun&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;E))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"'<span class="inlinecode"><span class="id" type="var">hv'</span></span> <span class="inlinecode">[</span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span>  <span class="inlinecode"><span class="id" type="var">x</span></span>  <span class="inlinecode">=&gt;</span> <span class="inlinecode">'/</span> <span class="inlinecode">'</span>  <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode">]</span> <span class="inlinecode">'</span>'")&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(SimplFun&nbsp;(fun&nbsp;x&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;E))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;<span class="inlinecode"><span class="id" type="keyword">fun</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span>)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"'<span class="inlinecode"><span class="id" type="var">hv'</span></span> <span class="inlinecode">[</span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span>  <span class="inlinecode"><span class="id" type="var">x</span></span>  <span class="inlinecode"><span class="id" type="var">y</span></span>  <span class="inlinecode">=&gt;</span> <span class="inlinecode">'/</span> <span class="inlinecode">'</span>  <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode">]</span> <span class="inlinecode">'</span>'")&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;<span class="inlinecode"><span class="id" type="keyword">fun</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span>)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode">(</span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">)</span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;<span class="inlinecode"><span class="id" type="keyword">fun</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span>)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode">(</span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">)</span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;<span class="inlinecode"><span class="id" type="keyword">fun</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">T</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span>)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">fun'</span></span> <span class="inlinecode">(</span> <span class="inlinecode"><span class="id" type="var">x</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">xT</span></span> <span class="inlinecode">)</span> <span class="inlinecode">(</span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">yT</span></span> <span class="inlinecode">)</span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span> <span class="inlinecode"></span>"&nbsp;:=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(fun&nbsp;x&nbsp;:&nbsp;xT&nbsp;=&gt;&nbsp;<span class="inlinecode"><span class="id" type="keyword">fun</span></span> <span class="inlinecode"><span class="id" type="var">y</span></span> <span class="inlinecode">:</span> <span class="inlinecode"><span class="id" type="var">yT</span></span> <span class="inlinecode">=&gt;</span> <span class="inlinecode"><span class="id" type="var">E</span></span>)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Definition&nbsp;erefl&nbsp;:=&nbsp;@eq_refl.<br/>
-Definition&nbsp;esym&nbsp;:=&nbsp;eq_sym.<br/>
-Definition&nbsp;nesym&nbsp;:=&nbsp;sym_not_eq.<br/>
-Definition&nbsp;etrans&nbsp;:=&nbsp;eq_trans.<br/>
-Definition&nbsp;congr1&nbsp;:=&nbsp;f_equal.<br/>
-Definition&nbsp;congr2&nbsp;:=&nbsp;f_equal2.<br/>
-<br/>
-<span class="comment">(**&nbsp;A&nbsp;predicate&nbsp;for&nbsp;singleton&nbsp;types.&nbsp;*)</span><br/>
-Definition&nbsp;all_equal_to&nbsp;T&nbsp;(x0&nbsp;:&nbsp;T)&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;x&nbsp;=&nbsp;x0.<br/>
-<br/>
-Lemma&nbsp;unitE&nbsp;:&nbsp;all_equal_to&nbsp;tt.<br/>
-Proof.&nbsp;by&nbsp;intros&nbsp;<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-<span class="comment">(**&nbsp;A&nbsp;generic&nbsp;wrapper&nbsp;type&nbsp;*)</span><br/>
-<br/>
-Structure&nbsp;wrapped&nbsp;T&nbsp;:=&nbsp;Wrap&nbsp;{unwrap&nbsp;:&nbsp;T}.<br/>
-Canonical&nbsp;Structure&nbsp;wrap&nbsp;T&nbsp;x&nbsp;:=&nbsp;@Wrap&nbsp;T&nbsp;x.<br/>
-<br/>
-<span class="comment">(*&nbsp;Prenex&nbsp;Implicits&nbsp;unwrap&nbsp;wrap&nbsp;Wrap.&nbsp;*)</span><br/>
-<br/>
-<span class="comment">(**&nbsp;Extensional&nbsp;equality&nbsp;for&nbsp;unary&nbsp;and&nbsp;binary&nbsp;functions&nbsp;+&nbsp;syntactic&nbsp;sugar.&nbsp;*)</span><br/>
-<br/>
-Section&nbsp;ExtensionalEquality.<br/>
-<br/>
-Variables&nbsp;A&nbsp;B&nbsp;C&nbsp;:&nbsp;Type.<br/>
-<br/>
-Definition&nbsp;eqfun&nbsp;(f&nbsp;g&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;A)&nbsp;:&nbsp;Prop&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;f&nbsp;x&nbsp;=&nbsp;g&nbsp;x.<br/>
-<br/>
-Definition&nbsp;eqrel&nbsp;(r&nbsp;s&nbsp;:&nbsp;C&nbsp;-&gt;&nbsp;B&nbsp;-&gt;&nbsp;A)&nbsp;:&nbsp;Prop&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y,&nbsp;r&nbsp;x&nbsp;y&nbsp;=&nbsp;s&nbsp;x&nbsp;y.<br/>
-<br/>
-Lemma&nbsp;frefl&nbsp;:&nbsp;forall&nbsp;f,&nbsp;eqfun&nbsp;f&nbsp;f.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;fsym&nbsp;:&nbsp;forall&nbsp;f&nbsp;g,&nbsp;eqfun&nbsp;f&nbsp;g&nbsp;-&gt;&nbsp;eqfun&nbsp;g&nbsp;f.<br/>
-Proof.&nbsp;red;&nbsp;done.&nbsp;Qed.&nbsp;<br/>
-<br/>
-Lemma&nbsp;ftrans&nbsp;:&nbsp;forall&nbsp;f&nbsp;g&nbsp;h&nbsp;(EQ1:&nbsp;eqfun&nbsp;f&nbsp;g)&nbsp;(EQ2:&nbsp;eqfun&nbsp;g&nbsp;h),&nbsp;eqfun&nbsp;f&nbsp;h.<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;intros;&nbsp;rewrite&nbsp;EQ1.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;rrefl&nbsp;:&nbsp;forall&nbsp;r,&nbsp;eqrel&nbsp;r&nbsp;r.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;ExtensionalEquality.<br/>
-<br/>
-Hint&nbsp;Resolve&nbsp;frefl&nbsp;rrefl.<br/>
-<br/>
-Notation&nbsp;"f1&nbsp;=1&nbsp;f2"&nbsp;:=&nbsp;(eqfun&nbsp;f1&nbsp;f2)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;70,&nbsp;no&nbsp;associativity)&nbsp;:&nbsp;fun_scope.<br/>
-Notation&nbsp;"f1&nbsp;=1&nbsp;f2&nbsp;:&gt;&nbsp;A"&nbsp;:=&nbsp;(f1&nbsp;=1&nbsp;(f2&nbsp;:&nbsp;A))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;70,&nbsp;f2&nbsp;at&nbsp;next&nbsp;level,&nbsp;A&nbsp;at&nbsp;level&nbsp;90)&nbsp;:&nbsp;fun_scope.<br/>
-Notation&nbsp;"f1&nbsp;=2&nbsp;f2"&nbsp;:=&nbsp;(eqrel&nbsp;f1&nbsp;f2)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;70,&nbsp;no&nbsp;associativity)&nbsp;:&nbsp;fun_scope.<br/>
-Notation&nbsp;"f1&nbsp;=2&nbsp;f2&nbsp;:&gt;&nbsp;A"&nbsp;:=&nbsp;(f1&nbsp;=2&nbsp;(f2&nbsp;:&nbsp;A))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;70,&nbsp;f2&nbsp;at&nbsp;next&nbsp;level,&nbsp;A,&nbsp;B&nbsp;at&nbsp;level&nbsp;90)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Section&nbsp;Composition.<br/>
-<br/>
-Variables&nbsp;A&nbsp;B&nbsp;C&nbsp;:&nbsp;Type.<br/>
-<br/>
-Definition&nbsp;funcomp&nbsp;u&nbsp;(f&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;A)&nbsp;(g&nbsp;:&nbsp;C&nbsp;-&gt;&nbsp;B)&nbsp;x&nbsp;:=&nbsp;match&nbsp;u&nbsp;with&nbsp;tt&nbsp;=&gt;&nbsp;f&nbsp;(g&nbsp;x)&nbsp;end.<br/>
-Local&nbsp;Notation&nbsp;comp&nbsp;:=&nbsp;(funcomp&nbsp;tt).<br/>
-<br/>
-Definition&nbsp;pcomp&nbsp;(f&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;option&nbsp;A)&nbsp;(g&nbsp;:&nbsp;C&nbsp;-&gt;&nbsp;option&nbsp;B)&nbsp;x&nbsp;:=&nbsp;obind&nbsp;f&nbsp;(g&nbsp;x).<br/>
-<br/>
-Lemma&nbsp;eq_comp&nbsp;:&nbsp;forall&nbsp;f&nbsp;f'&nbsp;g&nbsp;g',&nbsp;f&nbsp;=1&nbsp;f'&nbsp;-&gt;&nbsp;g&nbsp;=1&nbsp;g'&nbsp;-&gt;&nbsp;comp&nbsp;f&nbsp;g&nbsp;=1&nbsp;comp&nbsp;f'&nbsp;g'.<br/>
-Proof.&nbsp;red;&nbsp;intros;&nbsp;simpl;&nbsp;congruence.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;Composition.<br/>
-<br/>
-Notation&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">eta'</span></span> <span class="inlinecode"><span class="id" type="var">f</span></span> <span class="inlinecode"></span>"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;f&nbsp;x)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;format&nbsp;"<span class="inlinecode"></span> <span class="inlinecode">'<span class="id" type="var">eta'</span></span>  <span class="inlinecode"><span class="id" type="var">f</span></span> <span class="inlinecode"></span>")&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;id&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;x).<br/>
-Notation&nbsp;"@&nbsp;'id'&nbsp;T&nbsp;"&nbsp;:=&nbsp;(fun&nbsp;x&nbsp;:&nbsp;T&nbsp;=&gt;&nbsp;x)<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;10,&nbsp;T&nbsp;at&nbsp;level&nbsp;8,&nbsp;only&nbsp;parsing)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Notation&nbsp;comp&nbsp;:=&nbsp;(funcomp&nbsp;tt).<br/>
-Notation&nbsp;"@&nbsp;'comp'"&nbsp;:=&nbsp;(fun&nbsp;A&nbsp;B&nbsp;C&nbsp;=&gt;&nbsp;@funcomp&nbsp;A&nbsp;B&nbsp;C&nbsp;tt).<br/>
-Notation&nbsp;"f1&nbsp;\o&nbsp;f2"&nbsp;:=&nbsp;(comp&nbsp;f1&nbsp;f2)&nbsp;(at&nbsp;level&nbsp;50)&nbsp;:&nbsp;fun_scope.<br/>
-<br/>
-Section&nbsp;Morphism.<br/>
-<br/>
-Variables&nbsp;(aT&nbsp;rT&nbsp;sT&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;rT).<br/>
-<br/>
-Definition&nbsp;morphism_1&nbsp;aF&nbsp;rF&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;f&nbsp;(aF&nbsp;x)&nbsp;=&nbsp;rF&nbsp;(f&nbsp;x).<br/>
-Definition&nbsp;morphism_2&nbsp;aOp&nbsp;rOp&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y,&nbsp;f&nbsp;(aOp&nbsp;x&nbsp;y)&nbsp;=&nbsp;rOp&nbsp;(f&nbsp;x)&nbsp;(f&nbsp;y).<br/>
-<br/>
-End&nbsp;Morphism.<br/>
-<br/>
-Notation&nbsp;"{&nbsp;'morph'&nbsp;f&nbsp;:&nbsp;x&nbsp;/&nbsp;a&nbsp;&gt;-&gt;&nbsp;r&nbsp;}"&nbsp;:=<br/>
-&nbsp;&nbsp;(morphism_1&nbsp;f&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;a)&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;r))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;f&nbsp;at&nbsp;level&nbsp;99,&nbsp;x&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"{&nbsp;'morph'&nbsp;&nbsp;f&nbsp;&nbsp;:&nbsp;&nbsp;x&nbsp;&nbsp;/&nbsp;&nbsp;a&nbsp;&nbsp;&gt;-&gt;&nbsp;&nbsp;r&nbsp;}")&nbsp;:&nbsp;type_scope.<br/>
-<br/>
-Notation&nbsp;"{&nbsp;'morph'&nbsp;f&nbsp;:&nbsp;x&nbsp;/&nbsp;a&nbsp;}"&nbsp;:=<br/>
-&nbsp;&nbsp;(morphism_1&nbsp;f&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;a)&nbsp;(fun&nbsp;x&nbsp;=&gt;&nbsp;a))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;f&nbsp;at&nbsp;level&nbsp;99,&nbsp;x&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"{&nbsp;'morph'&nbsp;&nbsp;f&nbsp;&nbsp;:&nbsp;&nbsp;x&nbsp;&nbsp;/&nbsp;&nbsp;a&nbsp;}")&nbsp;:&nbsp;type_scope.<br/>
-<br/>
-Notation&nbsp;"{&nbsp;'morph'&nbsp;f&nbsp;:&nbsp;x&nbsp;y&nbsp;/&nbsp;a&nbsp;&gt;-&gt;&nbsp;r&nbsp;}"&nbsp;:=<br/>
-&nbsp;&nbsp;(morphism_2&nbsp;f&nbsp;(fun&nbsp;x&nbsp;y&nbsp;=&gt;&nbsp;a)&nbsp;(fun&nbsp;x&nbsp;y&nbsp;=&gt;&nbsp;r))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;f&nbsp;at&nbsp;level&nbsp;99,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"{&nbsp;'morph'&nbsp;&nbsp;f&nbsp;&nbsp;:&nbsp;&nbsp;x&nbsp;&nbsp;y&nbsp;&nbsp;/&nbsp;&nbsp;a&nbsp;&nbsp;&gt;-&gt;&nbsp;&nbsp;r&nbsp;}")&nbsp;:&nbsp;type_scope.<br/>
-<br/>
-Notation&nbsp;"{&nbsp;'morph'&nbsp;f&nbsp;:&nbsp;x&nbsp;y&nbsp;/&nbsp;a&nbsp;}"&nbsp;:=<br/>
-&nbsp;&nbsp;(morphism_2&nbsp;f&nbsp;(fun&nbsp;x&nbsp;y&nbsp;=&gt;&nbsp;a)&nbsp;(fun&nbsp;x&nbsp;y&nbsp;=&gt;&nbsp;a))<br/>
-&nbsp;&nbsp;(at&nbsp;level&nbsp;0,&nbsp;f&nbsp;at&nbsp;level&nbsp;99,&nbsp;x&nbsp;ident,&nbsp;y&nbsp;ident,<br/>
-&nbsp;&nbsp;&nbsp;format&nbsp;"{&nbsp;'morph'&nbsp;&nbsp;f&nbsp;&nbsp;:&nbsp;&nbsp;x&nbsp;&nbsp;y&nbsp;&nbsp;/&nbsp;&nbsp;a&nbsp;}")&nbsp;:&nbsp;type_scope.<br/>
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<span class="comment">(**&nbsp;*&nbsp;Properties&nbsp;of&nbsp;relations&nbsp;(ported&nbsp;from&nbsp;ssrfun.v)&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<br/>
-Section&nbsp;Injections.<br/>
-<br/>
-<span class="comment">(*&nbsp;rT&nbsp;must&nbsp;come&nbsp;first&nbsp;so&nbsp;we&nbsp;can&nbsp;use&nbsp;@&nbsp;to&nbsp;mitigate&nbsp;the&nbsp;Coq&nbsp;1st&nbsp;order&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;unification&nbsp;bug&nbsp;(e..g.,&nbsp;Coq&nbsp;can't&nbsp;infer&nbsp;rT&nbsp;from&nbsp;a&nbsp;"cancel"&nbsp;lemma).&nbsp;*)</span><br/>
-Variables&nbsp;(rT&nbsp;aT&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;rT).<br/>
-<br/>
-Definition&nbsp;injective&nbsp;:=&nbsp;forall&nbsp;x1&nbsp;x2,&nbsp;f&nbsp;x1&nbsp;=&nbsp;f&nbsp;x2&nbsp;-&gt;&nbsp;x1&nbsp;=&nbsp;x2.<br/>
-<br/>
-Definition&nbsp;cancel&nbsp;g&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;g&nbsp;(f&nbsp;x)&nbsp;=&nbsp;x.<br/>
-<br/>
-Definition&nbsp;pcancel&nbsp;g&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;g&nbsp;(f&nbsp;x)&nbsp;=&nbsp;Some&nbsp;x.<br/>
-<br/>
-Definition&nbsp;ocancel&nbsp;(g&nbsp;:&nbsp;aT&nbsp;-&gt;&nbsp;option&nbsp;rT)&nbsp;h&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;oapp&nbsp;h&nbsp;x&nbsp;(g&nbsp;x)&nbsp;=&nbsp;x.<br/>
-<br/>
-Lemma&nbsp;can_pcan&nbsp;:&nbsp;forall&nbsp;g,&nbsp;cancel&nbsp;g&nbsp;-&gt;&nbsp;pcancel&nbsp;(fun&nbsp;y&nbsp;=&gt;&nbsp;Some&nbsp;(g&nbsp;y)).<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;intros;&nbsp;f_equal.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;pcan_inj&nbsp;:&nbsp;forall&nbsp;g,&nbsp;pcancel&nbsp;g&nbsp;-&gt;&nbsp;injective.<br/>
-Proof.&nbsp;red;&nbsp;intros;&nbsp;apply&nbsp;(congr1&nbsp;g)&nbsp;in&nbsp;H0;&nbsp;rewrite&nbsp;!H&nbsp;in&nbsp;*;&nbsp;clarify.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;can_inj&nbsp;:&nbsp;forall&nbsp;g,&nbsp;cancel&nbsp;g&nbsp;-&gt;&nbsp;injective.<br/>
-Proof.&nbsp;eby&nbsp;intros;&nbsp;apply&nbsp;can_pcan&nbsp;in&nbsp;H;&nbsp;eapply&nbsp;pcan_inj.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;canLR&nbsp;:&nbsp;forall&nbsp;g&nbsp;x&nbsp;y,&nbsp;cancel&nbsp;g&nbsp;-&gt;&nbsp;x&nbsp;=&nbsp;f&nbsp;y&nbsp;-&gt;&nbsp;g&nbsp;x&nbsp;=&nbsp;y.<br/>
-Proof.&nbsp;intros;&nbsp;clarify.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;canRL&nbsp;:&nbsp;forall&nbsp;g&nbsp;x&nbsp;y,&nbsp;cancel&nbsp;g&nbsp;-&gt;&nbsp;f&nbsp;x&nbsp;=&nbsp;y&nbsp;-&gt;&nbsp;x&nbsp;=&nbsp;g&nbsp;y.<br/>
-Proof.&nbsp;intros;&nbsp;clarify.&nbsp;Qed.&nbsp;<br/>
-<br/>
-End&nbsp;Injections.<br/>
-<br/>
-<span class="comment">(*&nbsp;cancellation&nbsp;lemmas&nbsp;for&nbsp;dependent&nbsp;type&nbsp;casts.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-Lemma&nbsp;esymK&nbsp;:&nbsp;forall&nbsp;T&nbsp;x&nbsp;y,&nbsp;cancel&nbsp;(@eq_sym&nbsp;T&nbsp;x&nbsp;y)&nbsp;(@eq_sym&nbsp;T&nbsp;y&nbsp;x).<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;destruct&nbsp;x0.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;etrans_id&nbsp;:&nbsp;forall&nbsp;T&nbsp;x&nbsp;y&nbsp;(eqxy&nbsp;:&nbsp;x&nbsp;=&nbsp;y&nbsp;:&gt;&nbsp;T),<br/>
-&nbsp;&nbsp;eq_trans&nbsp;(eq_refl&nbsp;x)&nbsp;eqxy&nbsp;=&nbsp;eqxy.<br/>
-Proof.&nbsp;by&nbsp;destruct&nbsp;eqxy.&nbsp;Qed.<br/>
-<br/>
-Section&nbsp;InjectionsTheory.<br/>
-<br/>
-Variables&nbsp;(A&nbsp;B&nbsp;C&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;g&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;A)&nbsp;(h&nbsp;:&nbsp;C&nbsp;-&gt;&nbsp;B).<br/>
-<br/>
-Lemma&nbsp;inj_id&nbsp;:&nbsp;injective&nbsp;(@id&nbsp;A).<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;inj_can_sym&nbsp;:&nbsp;forall&nbsp;f',&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;injective&nbsp;f'&nbsp;-&gt;&nbsp;cancel&nbsp;f'&nbsp;f.<br/>
-Proof.&nbsp;red;&nbsp;intros;&nbsp;apply&nbsp;H0,&nbsp;H.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;inj_comp&nbsp;:&nbsp;injective&nbsp;f&nbsp;-&gt;&nbsp;injective&nbsp;h&nbsp;-&gt;&nbsp;injective&nbsp;(f&nbsp;\o&nbsp;h).<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;simpl;&nbsp;intros;&nbsp;apply&nbsp;H0,&nbsp;H.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;can_comp&nbsp;:&nbsp;forall&nbsp;f'&nbsp;h',<br/>
-&nbsp;&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;cancel&nbsp;h&nbsp;h'&nbsp;-&gt;&nbsp;cancel&nbsp;(f&nbsp;\o&nbsp;h)&nbsp;(h'&nbsp;\o&nbsp;f').<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;simpl;&nbsp;intros;&nbsp;rewrite&nbsp;H,&nbsp;H0.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;pcan_pcomp&nbsp;:&nbsp;forall&nbsp;f'&nbsp;h',<br/>
-&nbsp;&nbsp;pcancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;pcancel&nbsp;h&nbsp;h'&nbsp;-&gt;&nbsp;pcancel&nbsp;(f&nbsp;\o&nbsp;h)&nbsp;(pcomp&nbsp;h'&nbsp;f').<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;intros;&nbsp;unfold&nbsp;pcomp;&nbsp;simpl;&nbsp;rewrite&nbsp;H;&nbsp;simpl;&nbsp;rewrite&nbsp;H0.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;eq_inj&nbsp;:&nbsp;injective&nbsp;f&nbsp;-&gt;&nbsp;f&nbsp;=1&nbsp;g&nbsp;-&gt;&nbsp;injective&nbsp;g.<br/>
-Proof.&nbsp;intros&nbsp;H&nbsp;H0&nbsp;x&nbsp;y;&nbsp;simpl;&nbsp;rewrite&nbsp;&lt;-&nbsp;!H0;&nbsp;apply&nbsp;H.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;eq_can&nbsp;:&nbsp;forall&nbsp;f'&nbsp;g',&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;f&nbsp;=1&nbsp;g&nbsp;-&gt;&nbsp;f'&nbsp;=1&nbsp;g'&nbsp;-&gt;&nbsp;cancel&nbsp;g&nbsp;g'.<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;intros;&nbsp;rewrite&nbsp;&lt;-&nbsp;H0,&nbsp;&lt;-&nbsp;H1.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;inj_can_eq&nbsp;:&nbsp;forall&nbsp;f',<br/>
-&nbsp;&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;injective&nbsp;f'&nbsp;-&gt;&nbsp;cancel&nbsp;g&nbsp;f'&nbsp;-&gt;&nbsp;f&nbsp;=1&nbsp;g.<br/>
-Proof.&nbsp;by&nbsp;red;&nbsp;intros;&nbsp;apply&nbsp;H0;&nbsp;rewrite&nbsp;H1.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;InjectionsTheory.<br/>
-<br/>
-Section&nbsp;Bijections.<br/>
-<br/>
-Variables&nbsp;(A&nbsp;B&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;A).<br/>
-<br/>
-Inductive&nbsp;bijective&nbsp;:&nbsp;Prop&nbsp;:=&nbsp;Bijective&nbsp;g&nbsp;(_&nbsp;:&nbsp;cancel&nbsp;f&nbsp;g)&nbsp;(_&nbsp;:&nbsp;cancel&nbsp;g&nbsp;f).<br/>
-<br/>
-Hypothesis&nbsp;bijf&nbsp;:&nbsp;bijective.<br/>
-<br/>
-Lemma&nbsp;bij_inj&nbsp;:&nbsp;injective&nbsp;f.<br/>
-Proof.&nbsp;eby&nbsp;destruct&nbsp;bijf;&nbsp;eapply&nbsp;can_inj.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;bij_can_sym&nbsp;:&nbsp;forall&nbsp;f',&nbsp;cancel&nbsp;f'&nbsp;f&nbsp;&lt;-&gt;&nbsp;cancel&nbsp;f&nbsp;f'.<br/>
-Proof.<br/>
-split;&nbsp;intros;&nbsp;<span class="inlinecode"><span class="id" type="tactic">by</span></span> <span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">inj_can_sym</span>,</span> <span class="inlinecode"><span class="id" type="var">bij_inj</span>|</span>.<br/>
-by&nbsp;destruct&nbsp;bijf;&nbsp;intros&nbsp;x;&nbsp;rewrite&nbsp;&lt;-&nbsp;(H1&nbsp;x),&nbsp;H.<br/>
-Qed.<br/>
-<br/>
-Lemma&nbsp;bij_can_eq&nbsp;:&nbsp;forall&nbsp;f'&nbsp;f'',&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;cancel&nbsp;f&nbsp;f''&nbsp;-&gt;&nbsp;f'&nbsp;=1&nbsp;f''.<br/>
-Proof.<br/>
-&nbsp;&nbsp;by&nbsp;intros;&nbsp;eapply&nbsp;inj_can_eq,&nbsp;bij_can_sym;&nbsp;<span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">bij_can_sym</span></span> <span class="inlinecode">|</span> <span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode"><span class="id" type="var">bij_inj</span></span> <span class="inlinecode">|</span>.<br/>
-Qed.<br/>
-<br/>
-End&nbsp;Bijections.<br/>
-<br/>
-Section&nbsp;BijectionsTheory.<br/>
-<br/>
-Variables&nbsp;(A&nbsp;B&nbsp;C&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;:&nbsp;B&nbsp;-&gt;&nbsp;A)&nbsp;(h&nbsp;:&nbsp;C&nbsp;-&gt;&nbsp;B).<br/>
-<br/>
-Lemma&nbsp;eq_bij&nbsp;:&nbsp;bijective&nbsp;f&nbsp;-&gt;&nbsp;forall&nbsp;g,&nbsp;f&nbsp;=1&nbsp;g&nbsp;-&gt;&nbsp;bijective&nbsp;g.<br/>
-Proof.&nbsp;by&nbsp;destruct&nbsp;1;&nbsp;exists&nbsp;g;&nbsp;eapply&nbsp;eq_can;&nbsp;eauto.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;bij_comp&nbsp;:&nbsp;bijective&nbsp;f&nbsp;-&gt;&nbsp;bijective&nbsp;h&nbsp;-&gt;&nbsp;bijective&nbsp;(f&nbsp;\o&nbsp;h).<br/>
-Proof.<br/>
-intros&nbsp;<span class="inlinecode"><span class="id" type="var">f'</span></span> <span class="inlinecode"><span class="id" type="var">fK</span></span> <span class="inlinecode"><span class="id" type="var">f'K</span></span>&nbsp;<span class="inlinecode"><span class="id" type="var">h'</span></span> <span class="inlinecode"><span class="id" type="var">hK</span></span> <span class="inlinecode"><span class="id" type="var">h'K</span></span>.<br/>
-by&nbsp;exists&nbsp;(h'&nbsp;\o&nbsp;f'&nbsp;:&nbsp;_&nbsp;-&gt;&nbsp;_);&nbsp;apply&nbsp;can_comp;&nbsp;auto.<br/>
-Qed.<br/>
-<br/>
-Lemma&nbsp;bij_can_bij&nbsp;:&nbsp;bijective&nbsp;f&nbsp;-&gt;&nbsp;forall&nbsp;f',&nbsp;cancel&nbsp;f&nbsp;f'&nbsp;-&gt;&nbsp;bijective&nbsp;f'.<br/>
-Proof.&nbsp;by&nbsp;exists&nbsp;f;&nbsp;<span class="inlinecode"><span class="id" type="tactic">apply</span></span> <span class="inlinecode">(<span class="id" type="var">bij_can_sym</span></span> <span class="inlinecode"><span class="id" type="var">H</span>)</span> <span class="inlinecode">|</span>.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;BijectionsTheory.<br/>
-<br/>
-Section&nbsp;Involutions.<br/>
-<br/>
-Variables&nbsp;(A&nbsp;:&nbsp;Type)&nbsp;(f&nbsp;:&nbsp;A&nbsp;-&gt;&nbsp;A).<br/>
-<br/>
-Definition&nbsp;involutive&nbsp;:=&nbsp;cancel&nbsp;f&nbsp;f.<br/>
-<br/>
-Hypothesis&nbsp;Hf&nbsp;:&nbsp;involutive.<br/>
-<br/>
-Lemma&nbsp;inv_inj&nbsp;:&nbsp;injective&nbsp;f.<br/>
-Proof.&nbsp;eapply&nbsp;can_inj,&nbsp;Hf.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;inv_bij&nbsp;:&nbsp;bijective&nbsp;f.<br/>
-Proof.&nbsp;by&nbsp;exists&nbsp;f.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;Involutions.<br/>
-<br/>
-<br/>
-Section&nbsp;OperationProperties.<br/>
-<br/>
-Variables&nbsp;S&nbsp;T&nbsp;R&nbsp;:&nbsp;Type.<br/>
-<br/>
-Section&nbsp;SopTisR.<br/>
-Implicit&nbsp;Type&nbsp;op&nbsp;:&nbsp;S&nbsp;-&gt;&nbsp;T&nbsp;-&gt;&nbsp;R.<br/>
-Definition&nbsp;left_inverse&nbsp;e&nbsp;inv&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;(inv&nbsp;x)&nbsp;x&nbsp;=&nbsp;e.<br/>
-Definition&nbsp;right_inverse&nbsp;e&nbsp;inv&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;x&nbsp;(inv&nbsp;x)&nbsp;=&nbsp;e.<br/>
-End&nbsp;SopTisR.<br/>
-<br/>
-Section&nbsp;SopTisS.<br/>
-Implicit&nbsp;Type&nbsp;op&nbsp;:&nbsp;S&nbsp;-&gt;&nbsp;T&nbsp;-&gt;&nbsp;S.<br/>
-Definition&nbsp;right_id&nbsp;e&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;x&nbsp;e&nbsp;=&nbsp;x.<br/>
-Definition&nbsp;left_zero&nbsp;z&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;z&nbsp;x&nbsp;=&nbsp;z.<br/>
-Definition&nbsp;right_commutative&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;op&nbsp;(op&nbsp;x&nbsp;y)&nbsp;z&nbsp;=&nbsp;op&nbsp;(op&nbsp;x&nbsp;z)&nbsp;y.<br/>
-Definition&nbsp;left_distributive&nbsp;op&nbsp;add&nbsp;:=<br/>
-&nbsp;&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;op&nbsp;(add&nbsp;x&nbsp;y)&nbsp;z&nbsp;=&nbsp;add&nbsp;(op&nbsp;x&nbsp;z)&nbsp;(op&nbsp;y&nbsp;z).<br/>
-End&nbsp;SopTisS.<br/>
-<br/>
-Section&nbsp;SopTisT.<br/>
-Implicit&nbsp;Type&nbsp;op&nbsp;:&nbsp;S&nbsp;-&gt;&nbsp;T&nbsp;-&gt;&nbsp;T.<br/>
-Definition&nbsp;left_id&nbsp;e&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;e&nbsp;x&nbsp;=&nbsp;x.<br/>
-Definition&nbsp;right_zero&nbsp;z&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;x&nbsp;z&nbsp;=&nbsp;z.<br/>
-Definition&nbsp;left_commutative&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;op&nbsp;x&nbsp;(op&nbsp;y&nbsp;z)&nbsp;=&nbsp;op&nbsp;y&nbsp;(op&nbsp;x&nbsp;z).<br/>
-Definition&nbsp;right_distributive&nbsp;op&nbsp;add&nbsp;:=<br/>
-&nbsp;&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;op&nbsp;x&nbsp;(add&nbsp;y&nbsp;z)&nbsp;=&nbsp;add&nbsp;(op&nbsp;x&nbsp;y)&nbsp;(op&nbsp;x&nbsp;z).<br/>
-End&nbsp;SopTisT.<br/>
-<br/>
-Section&nbsp;SopSisT.<br/>
-Implicit&nbsp;Type&nbsp;op&nbsp;:&nbsp;S&nbsp;-&gt;&nbsp;S&nbsp;-&gt;&nbsp;T.<br/>
-Definition&nbsp;self_inverse&nbsp;e&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;x&nbsp;x&nbsp;=&nbsp;e.<br/>
-Definition&nbsp;commutative&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y,&nbsp;op&nbsp;x&nbsp;y&nbsp;=&nbsp;op&nbsp;y&nbsp;x.<br/>
-End&nbsp;SopSisT.<br/>
-<br/>
-Section&nbsp;SopSisS.<br/>
-Implicit&nbsp;Type&nbsp;op&nbsp;:&nbsp;S&nbsp;-&gt;&nbsp;S&nbsp;-&gt;&nbsp;S.<br/>
-Definition&nbsp;idempotent&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x,&nbsp;op&nbsp;x&nbsp;x&nbsp;=&nbsp;x.<br/>
-Definition&nbsp;associative&nbsp;op&nbsp;:=&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;op&nbsp;x&nbsp;(op&nbsp;y&nbsp;z)&nbsp;=&nbsp;op&nbsp;(op&nbsp;x&nbsp;y)&nbsp;z.<br/>
-End&nbsp;SopSisS.<br/>
-<br/>
-End&nbsp;OperationProperties.<br/>
-<br/>
-<br/>
-<span class="comment">(**&nbsp;**&nbsp;Boolean&nbsp;laws&nbsp;*)</span><br/>
-<br/>
-<span class="comment">(**&nbsp;Shorter,&nbsp;more&nbsp;systematic&nbsp;names&nbsp;for&nbsp;the&nbsp;boolean&nbsp;connectives&nbsp;laws.&nbsp;*)</span><br/>
-<br/>
-Lemma&nbsp;andTb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;true&nbsp;&amp;&amp;&nbsp;x&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-Lemma&nbsp;andFb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;false&nbsp;&amp;&amp;&nbsp;x&nbsp;=&nbsp;false.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-Lemma&nbsp;andbT&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;&amp;&amp;&nbsp;true&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros&nbsp;<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andbF&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;&amp;&amp;&nbsp;false&nbsp;=&nbsp;false.<br/>
-Proof.&nbsp;by&nbsp;intros&nbsp;<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andbb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;&amp;&amp;&nbsp;x&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros&nbsp;<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;andbC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;x&nbsp;&amp;&amp;&nbsp;y&nbsp;=&nbsp;y&nbsp;&amp;&amp;&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andbA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;&amp;&amp;&nbsp;(y&nbsp;&amp;&amp;&nbsp;z)&nbsp;=&nbsp;x&nbsp;&amp;&amp;&nbsp;y&nbsp;&amp;&amp;&nbsp;z.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andbCA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;&amp;&amp;&nbsp;(y&nbsp;&amp;&amp;&nbsp;z)&nbsp;=&nbsp;y&nbsp;&amp;&amp;&nbsp;(x&nbsp;&amp;&amp;&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andbAC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;&amp;&amp;&nbsp;y&nbsp;&amp;&amp;&nbsp;z&nbsp;=&nbsp;x&nbsp;&amp;&amp;&nbsp;z&nbsp;&amp;&amp;&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;andbN&nbsp;:&nbsp;forall&nbsp;b,&nbsp;b&nbsp;&amp;&amp;&nbsp;negb&nbsp;b&nbsp;=&nbsp;false.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andNb&nbsp;:&nbsp;forall&nbsp;b,&nbsp;negb&nbsp;b&nbsp;&amp;&amp;&nbsp;b&nbsp;=&nbsp;false.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;orTb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;true&nbsp;||&nbsp;x&nbsp;=&nbsp;true.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-Lemma&nbsp;orFb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;false&nbsp;||&nbsp;x&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;done.&nbsp;Qed.<br/>
-Lemma&nbsp;orbT&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;||&nbsp;true&nbsp;=&nbsp;true.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orbF&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;||&nbsp;false&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orbb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;x&nbsp;||&nbsp;x&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;orbC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;x&nbsp;||&nbsp;y&nbsp;=&nbsp;y&nbsp;||&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orbA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;||&nbsp;(y&nbsp;||&nbsp;z)&nbsp;=&nbsp;x&nbsp;||&nbsp;y&nbsp;||&nbsp;z.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-Lemma&nbsp;orbCA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;||&nbsp;(y&nbsp;||&nbsp;z)&nbsp;=&nbsp;y&nbsp;||&nbsp;(x&nbsp;||&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orbAC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;||&nbsp;y&nbsp;||&nbsp;z&nbsp;=&nbsp;x&nbsp;||&nbsp;z&nbsp;||&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;orbN&nbsp;:&nbsp;forall&nbsp;b,&nbsp;b&nbsp;||&nbsp;negb&nbsp;b&nbsp;=&nbsp;true.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orNb&nbsp;:&nbsp;forall&nbsp;b,&nbsp;negb&nbsp;b&nbsp;||&nbsp;b&nbsp;=&nbsp;true.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;andb_orl&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;(x&nbsp;||&nbsp;y)&nbsp;&amp;&amp;&nbsp;z&nbsp;=&nbsp;x&nbsp;&amp;&amp;&nbsp;z&nbsp;||&nbsp;y&nbsp;&amp;&amp;&nbsp;z.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andb_orr&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;&amp;&amp;&nbsp;(y&nbsp;||&nbsp;z)&nbsp;=&nbsp;x&nbsp;&amp;&amp;&nbsp;y&nbsp;||&nbsp;x&nbsp;&amp;&amp;&nbsp;z.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orb_andl&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;(x&nbsp;&amp;&amp;&nbsp;y)&nbsp;||&nbsp;z&nbsp;=&nbsp;(x&nbsp;||&nbsp;z)&nbsp;&amp;&amp;&nbsp;(y&nbsp;||&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orb_andr&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;||&nbsp;(y&nbsp;&amp;&amp;&nbsp;z)&nbsp;=&nbsp;(x&nbsp;||&nbsp;y)&nbsp;&amp;&amp;&nbsp;(x&nbsp;||&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-<span class="comment">(**&nbsp;Pseudo-cancellation&nbsp;--&nbsp;i.e,&nbsp;absorbtion&nbsp;*)</span><br/>
-<br/>
-Lemma&nbsp;andbK&nbsp;:&nbsp;forall&nbsp;b1&nbsp;b2,&nbsp;b1&nbsp;&amp;&amp;&nbsp;b2&nbsp;||&nbsp;b1&nbsp;=&nbsp;b1.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;andKb&nbsp;:&nbsp;forall&nbsp;b1&nbsp;b2,&nbsp;b1&nbsp;||&nbsp;b2&nbsp;&amp;&amp;&nbsp;b1&nbsp;=&nbsp;b1.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orbK&nbsp;:&nbsp;forall&nbsp;b1&nbsp;b2,&nbsp;(b1&nbsp;||&nbsp;b2)&nbsp;&amp;&amp;&nbsp;b1&nbsp;=&nbsp;b1.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;orKb&nbsp;:&nbsp;forall&nbsp;b1&nbsp;b2,&nbsp;b1&nbsp;&amp;&amp;&nbsp;(b2&nbsp;||&nbsp;b1)&nbsp;=&nbsp;b1.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-<span class="comment">(**&nbsp;Exclusive&nbsp;or&nbsp;--&nbsp;<span class="inlinecode"><span class="id" type="var">xorb</span></span>&nbsp;*)</span><br/>
-<br/>
-Lemma&nbsp;xorFb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;xorb&nbsp;false&nbsp;x&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorbF&nbsp;:&nbsp;forall&nbsp;x,&nbsp;xorb&nbsp;x&nbsp;false&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorTb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;xorb&nbsp;true&nbsp;x&nbsp;=&nbsp;negb&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorbT&nbsp;:&nbsp;forall&nbsp;x,&nbsp;xorb&nbsp;x&nbsp;true&nbsp;=&nbsp;negb&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorbb&nbsp;:&nbsp;forall&nbsp;x,&nbsp;xorb&nbsp;x&nbsp;x&nbsp;=&nbsp;false.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;xorbC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;xorb&nbsp;x&nbsp;y&nbsp;=&nbsp;xorb&nbsp;y&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorbA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;xorb&nbsp;x&nbsp;(xorb&nbsp;y&nbsp;z)&nbsp;=&nbsp;xorb&nbsp;(xorb&nbsp;x&nbsp;y)&nbsp;z.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-Lemma&nbsp;xorbCA&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;xorb&nbsp;x&nbsp;(xorb&nbsp;y&nbsp;z)&nbsp;=&nbsp;xorb&nbsp;y&nbsp;(xorb&nbsp;x&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-Lemma&nbsp;xorbAC&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;xorb&nbsp;(xorb&nbsp;x&nbsp;y)&nbsp;z&nbsp;=&nbsp;xorb&nbsp;(xorb&nbsp;x&nbsp;z)&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-<br/>
-Lemma&nbsp;xorbN&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;xorb&nbsp;x&nbsp;(negb&nbsp;y)&nbsp;=&nbsp;negb&nbsp;(xorb&nbsp;x&nbsp;y).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;xorNb&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;xorb&nbsp;x&nbsp;(negb&nbsp;y)&nbsp;=&nbsp;negb&nbsp;(xorb&nbsp;x&nbsp;y).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;andb_xorl&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;(xorb&nbsp;x&nbsp;y)&nbsp;&amp;&amp;&nbsp;z&nbsp;=&nbsp;xorb&nbsp;(x&nbsp;&amp;&amp;&nbsp;z)&nbsp;(y&nbsp;&amp;&amp;&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-Lemma&nbsp;andb_xorr&nbsp;:&nbsp;forall&nbsp;x&nbsp;y&nbsp;z,&nbsp;x&nbsp;&amp;&amp;&nbsp;(xorb&nbsp;y&nbsp;z)&nbsp;=&nbsp;xorb&nbsp;(x&nbsp;&amp;&amp;&nbsp;y)&nbsp;(x&nbsp;&amp;&amp;&nbsp;z).<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.&nbsp;<br/>
-<br/>
-<span class="comment">(**&nbsp;Negation&nbsp;*)</span><br/>
-<br/>
-Lemma&nbsp;negb_neg&nbsp;:&nbsp;forall&nbsp;x,&nbsp;negb&nbsp;(negb&nbsp;x)&nbsp;=&nbsp;x.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;negb_and&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;negb&nbsp;(x&nbsp;&amp;&amp;&nbsp;y)&nbsp;=&nbsp;negb&nbsp;x&nbsp;||&nbsp;negb&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;negb_or&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;negb&nbsp;(x&nbsp;||&nbsp;y)&nbsp;=&nbsp;negb&nbsp;x&nbsp;&amp;&amp;&nbsp;negb&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-Lemma&nbsp;negb_xor&nbsp;:&nbsp;forall&nbsp;x&nbsp;y,&nbsp;negb&nbsp;(xorb&nbsp;x&nbsp;y)&nbsp;=&nbsp;xorb&nbsp;(negb&nbsp;x)&nbsp;y.<br/>
-Proof.&nbsp;by&nbsp;intros<span class="inlinecode"></span><span class="inlinecode"></span>.&nbsp;Qed.<br/>
-<br/>
-<br/>
-<span class="comment">(**&nbsp;**&nbsp;Automation&nbsp;support&nbsp;*)</span><br/>
-<br/>
-Hint&nbsp;Rewrite&nbsp;<br/>
-&nbsp;&nbsp;andTb&nbsp;andFb&nbsp;andbT&nbsp;andbF&nbsp;<br/>
-&nbsp;&nbsp;orTb&nbsp;orFb&nbsp;orbT&nbsp;orbF<br/>
-&nbsp;&nbsp;:&nbsp;vlib_trivial.<br/>
-<br/>
-Hint&nbsp;Rewrite&nbsp;<br/>
-&nbsp;&nbsp;andbb&nbsp;andbN&nbsp;andNb&nbsp;<br/>
-&nbsp;&nbsp;orbb&nbsp;orbN&nbsp;orNb&nbsp;<br/>
-&nbsp;&nbsp;andbK&nbsp;andKb&nbsp;orbK&nbsp;orKb<br/>
-&nbsp;&nbsp;xorbb&nbsp;xorFb&nbsp;xorbF&nbsp;xorTb&nbsp;xorbT&nbsp;xorbb&nbsp;negb_neg&nbsp;<br/>
-&nbsp;&nbsp;:&nbsp;vlib.<br/>
-<br/>
-Hint&nbsp;Rewrite&nbsp;andbA&nbsp;orbA&nbsp;xorbA&nbsp;:&nbsp;vlibA.<br/>
-<br/>
-<span class="comment">(**&nbsp;Other&nbsp;potentially&nbsp;useful&nbsp;rewrites:&nbsp;<span class="inlinecode"><span class="id" type="var">negb_and</span></span>&nbsp;<span class="inlinecode"><span class="id" type="var">negb_or</span></span>&nbsp;<span class="inlinecode"><span class="id" type="var">negb_xor</span></span>.&nbsp;*)</span><br/>
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<span class="comment">(**&nbsp;**&nbsp;Views&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<br/>
-<span class="comment">(**&nbsp;An&nbsp;attempt&nbsp;to&nbsp;replicate&nbsp;functionality&nbsp;from&nbsp;ss-reflect.&nbsp;*)</span><br/>
-<br/>
-Section&nbsp;ApplyIff.<br/>
-<br/>
-Variables&nbsp;P&nbsp;Q&nbsp;:&nbsp;Prop.<br/>
-Hypothesis&nbsp;eqPQ&nbsp;:&nbsp;P&nbsp;&lt;-&gt;&nbsp;Q.<br/>
-<br/>
-Lemma&nbsp;iffLR&nbsp;:&nbsp;P&nbsp;-&gt;&nbsp;Q.<br/>
-Proof.&nbsp;tauto.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;iffRL&nbsp;:&nbsp;Q&nbsp;-&gt;&nbsp;P.<br/>
-Proof.&nbsp;tauto.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;iffLRn&nbsp;:&nbsp;~P&nbsp;-&gt;&nbsp;~Q.<br/>
-Proof.&nbsp;tauto.&nbsp;Qed.<br/>
-<br/>
-Lemma&nbsp;iffRLn&nbsp;:&nbsp;~Q&nbsp;-&gt;&nbsp;~P.<br/>
-Proof.&nbsp;tauto.&nbsp;Qed.<br/>
-<br/>
-End&nbsp;ApplyIff.<br/>
-<br/>
-<br/>
-<br/>
-<br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<span class="comment">(**&nbsp;*&nbsp;Predicates,&nbsp;i.e.&nbsp;functions&nbsp;to&nbsp;bool&nbsp;(ported&nbsp;from&nbsp;ssrbool.v)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;**************************************************************************&nbsp;*)</span><br/>
-<br/>
-<br/>
-<span class="comment">(****************************************************************************)</span><br/>
-<span class="comment">(*&nbsp;Predicates,&nbsp;i.e.,&nbsp;packaged&nbsp;functions&nbsp;to&nbsp;bool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;pred&nbsp;T,&nbsp;the&nbsp;basic&nbsp;type&nbsp;for&nbsp;predicates&nbsp;over&nbsp;a&nbsp;type&nbsp;T,&nbsp;is&nbsp;simply&nbsp;an&nbsp;alias&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;for&nbsp;T&nbsp;-&gt;&nbsp;bool.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;We&nbsp;actually&nbsp;distinguish&nbsp;two&nbsp;kinds&nbsp;of&nbsp;predicates,&nbsp;which&nbsp;we&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;applicative&nbsp;and&nbsp;collective,&nbsp;based&nbsp;on&nbsp;the&nbsp;syntax&nbsp;used&nbsp;to&nbsp;specialize&nbsp;them&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;to&nbsp;some&nbsp;value&nbsp;x&nbsp;in&nbsp;T:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;For&nbsp;an&nbsp;applicative&nbsp;predicate&nbsp;P,&nbsp;one&nbsp;uses&nbsp;prefix&nbsp;syntax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;Also,&nbsp;most&nbsp;operations&nbsp;on&nbsp;applicative&nbsp;predicates&nbsp;use&nbsp;prefix&nbsp;syntax&nbsp;as&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;well&nbsp;(e.g.,&nbsp;predI&nbsp;P&nbsp;Q).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;For&nbsp;a&nbsp;collective&nbsp;predicate&nbsp;A,&nbsp;one&nbsp;uses&nbsp;infix&nbsp;syntax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;\in&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;and&nbsp;all&nbsp;operations&nbsp;on&nbsp;collective&nbsp;predicates&nbsp;use&nbsp;infix&nbsp;syntax&nbsp;as&nbsp;well&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;(e.g.,&nbsp;<span class="inlinecode"><span class="id" type="var">predI</span></span> <span class="inlinecode"><span class="id" type="var">A</span></span> <span class="inlinecode">&amp;</span> <span class="inlinecode"><span class="id" type="var">B</span></span>).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;There&nbsp;are&nbsp;only&nbsp;two&nbsp;kinds&nbsp;of&nbsp;applicative&nbsp;predicates:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;pred&nbsp;T,&nbsp;the&nbsp;alias&nbsp;for&nbsp;T&nbsp;-&gt;&nbsp;bool&nbsp;mentioned&nbsp;above&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;simpl_pred&nbsp;T,&nbsp;an&nbsp;alias&nbsp;for&nbsp;simpl_fun&nbsp;T&nbsp;bool&nbsp;with&nbsp;a&nbsp;coercion&nbsp;to&nbsp;pred&nbsp;T&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;auto-simplifies&nbsp;on&nbsp;application&nbsp;(see&nbsp;ssrfun).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;On&nbsp;the&nbsp;other&nbsp;hand,&nbsp;the&nbsp;set&nbsp;of&nbsp;collective&nbsp;predicate&nbsp;types&nbsp;is&nbsp;open-ended,&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;via&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;predType&nbsp;T,&nbsp;a&nbsp;Structure&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;put&nbsp;Canonical&nbsp;collective&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;predicate&nbsp;interpretation&nbsp;on&nbsp;other&nbsp;types,&nbsp;such&nbsp;as&nbsp;lists,&nbsp;tuples,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;finite&nbsp;sets,&nbsp;etc.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;Indeed,&nbsp;we&nbsp;define&nbsp;such&nbsp;interpretations&nbsp;for&nbsp;applicative&nbsp;predicate&nbsp;types,&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;which&nbsp;can&nbsp;therefore&nbsp;also&nbsp;be&nbsp;used&nbsp;with&nbsp;the&nbsp;infix&nbsp;syntax,&nbsp;e.g.&nbsp;x&nbsp;\in&nbsp;predI&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;P&nbsp;Q.&nbsp;Moreover&nbsp;these&nbsp;infix&nbsp;forms&nbsp;are&nbsp;convertible&nbsp;to&nbsp;their&nbsp;prefix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;counterpart&nbsp;(e.g.,&nbsp;predI&nbsp;P&nbsp;Q&nbsp;x&nbsp;which&nbsp;in&nbsp;turn&nbsp;simplifies&nbsp;to&nbsp;P&nbsp;x&nbsp;&amp;&amp;&nbsp;Q&nbsp;x).&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;The&nbsp;converse&nbsp;is&nbsp;not&nbsp;true,&nbsp;however;&nbsp;collective&nbsp;predicate&nbsp;types&nbsp;cannot,&nbsp;in&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;general,&nbsp;be&nbsp;used&nbsp;applicatively,&nbsp;because&nbsp;of&nbsp;the&nbsp;"uniform&nbsp;inheritance"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;restriction&nbsp;on&nbsp;implicit&nbsp;coercions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;However,&nbsp;we&nbsp;do&nbsp;define&nbsp;an&nbsp;explicit&nbsp;generic&nbsp;coercion&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;-&nbsp;mem&nbsp;:&nbsp;forall&nbsp;(pT&nbsp;:&nbsp;predType),&nbsp;pT&nbsp;-&gt;&nbsp;mem_pred&nbsp;T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;mem_pred&nbsp;T&nbsp;is&nbsp;a&nbsp;variant&nbsp;of&nbsp;simpl_pred&nbsp;T&nbsp;that&nbsp;preserves&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;infix&nbsp;syntax,&nbsp;i.e.,&nbsp;mem&nbsp;A&nbsp;x&nbsp;auto-simplifies&nbsp;to&nbsp;x&nbsp;\in&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;Indeed,&nbsp;the&nbsp;infix&nbsp;"collective"&nbsp;operators&nbsp;are&nbsp;notation&nbsp;for&nbsp;a&nbsp;prefix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;operator&nbsp;with&nbsp;arguments&nbsp;of&nbsp;type&nbsp;mem_pred&nbsp;T&nbsp;or&nbsp;pred&nbsp;T,&nbsp;applied&nbsp;to&nbsp;coerced&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;collective&nbsp;predicates,&nbsp;e.g.,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notation&nbsp;"x&nbsp;\in&nbsp;A"&nbsp;:=&nbsp;(in_mem&nbsp;x&nbsp;(mem&nbsp;A)).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;This&nbsp;prevents&nbsp;the&nbsp;variability&nbsp;in&nbsp;the&nbsp;predicate&nbsp;type&nbsp;from&nbsp;interfering&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;with&nbsp;the&nbsp;application&nbsp;of&nbsp;generic&nbsp;lemmas.&nbsp;Moreover&nbsp;this&nbsp;also&nbsp;makes&nbsp;it&nbsp;much&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;easier&nbsp;to&nbsp;define&nbsp;generic&nbsp;lemmas,&nbsp;because&nbsp;the&nbsp;simplest&nbsp;type&nbsp;--&nbsp;pred&nbsp;T&nbsp;--&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;can&nbsp;be&nbsp;used&nbsp;as&nbsp;the&nbsp;type&nbsp;of&nbsp;generic&nbsp;collective&nbsp;predicates,&nbsp;provided&nbsp;one&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;takes&nbsp;care&nbsp;not&nbsp;to&nbsp;use&nbsp;it&nbsp;applicatively;&nbsp;this&nbsp;avoids&nbsp;the&nbsp;burden&nbsp;of&nbsp;having&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;to&nbsp;declare&nbsp;a&nbsp;different&nbsp;predicate&nbsp;type&nbsp;for&nbsp;each&nbsp;predicate&nbsp;parameter&nbsp;of&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;each&nbsp;section&nbsp;or&nbsp;lemma.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;This&nbsp;trick&nbsp;is&nbsp;made&nbsp;possible&nbsp;by&nbsp;the&nbsp;fact&nbsp;that&nbsp;the&nbsp;constructor&nbsp;of&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;mem_pred&nbsp;T&nbsp;type&nbsp;aligns&nbsp;the&nbsp;unification&nbsp;process,&nbsp;forcing&nbsp;a&nbsp;generic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;"collective"&nbsp;predicate&nbsp;A : pred&nbsp;T&nbsp;to&nbsp;unify&nbsp;with&nbsp;the&nbsp;actual&nbsp;collective&nbsp;B,&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;which&nbsp;mem&nbsp;has&nbsp;coerced&nbsp;to&nbsp;pred T&nbsp;via&nbsp;an&nbsp;internal,&nbsp;hidden&nbsp;implicit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;coercion,&nbsp;supplied&nbsp;by&nbsp;the&nbsp;predType&nbsp;structure&nbsp;for&nbsp;B.&nbsp;Users&nbsp;should&nbsp;take&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;care&nbsp;not&nbsp;to&nbsp;inadvertently&nbsp;"strip"&nbsp;(mem&nbsp;B)&nbsp;down&nbsp;to&nbsp;the&nbsp;coerced&nbsp;B,&nbsp;since&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;this&nbsp;will&nbsp;expose&nbsp;the&nbsp;internal&nbsp;coercion:&nbsp;Coq&nbsp;will&nbsp;display&nbsp;a&nbsp;term&nbsp;B&nbsp;x&nbsp;that&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;can't&nbsp;be&nbsp;typed&nbsp;as&nbsp;such.&nbsp;The&nbsp;topredE&nbsp;lemma&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;restore&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;x \in B&nbsp;syntax&nbsp;in&nbsp;this&nbsp;case.&nbsp;While&nbsp;-topredE&nbsp;can&nbsp;conversely&nbsp;be&nbsp;used&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;change&nbsp;x \in P&nbsp;into&nbsp;P x,&nbsp;it&nbsp;is&nbsp;safer&nbsp;to&nbsp;use&nbsp;the&nbsp;inE&nbsp;and&nbsp;memE&nbsp;lemmas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;instead,&nbsp;as&nbsp;they&nbsp;do&nbsp;not&nbsp;run&nbsp;the&nbsp;risk&nbsp;of&nbsp;exposing&nbsp;internal&nbsp;coercions.&nbsp;As&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;a&nbsp;consequence,&nbsp;it&nbsp;is&nbsp;better&nbsp;to&nbsp;explicitly&nbsp;cast&nbsp;a&nbsp;generic&nbsp;applicative&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;pred T&nbsp;to&nbsp;simpl_pred,&nbsp;using&nbsp;the&nbsp;SimplPred&nbsp;constructor,&nbsp;when&nbsp;it&nbsp;is&nbsp;used&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;as&nbsp;a&nbsp;collective&nbsp;predicate&nbsp;(see,&nbsp;e.g.,&nbsp;Lemma&nbsp;eq_big&nbsp;in&nbsp;bigop.v).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;&nbsp;&nbsp;We&nbsp;also&nbsp;sometimes&nbsp;"instantiate"&nbsp;the&nbsp;predType&nbsp;structure&nbsp;by&nbsp;defining&nbsp;a&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;coercion&nbsp;to&nbsp;the&nbsp;sort&nbsp;of&nbsp;the&nbsp;predPredType&nbsp;structure.&nbsp;&nbsp;This&nbsp;works&nbsp;better&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;for&nbsp;types&nbsp;such&nbsp;as&nbsp;{set&nbsp;T}&nbsp;that&nbsp;have&nbsp;subtypes&nbsp;that&nbsp;coerce&nbsp;to&nbsp;them,&nbsp;since&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;the&nbsp;same&nbsp;coercion&nbsp;will&nbsp;be&nbsp;inserted&nbsp;by&nbsp;the&nbsp;application&nbsp;of&nbsp;mem.&nbsp;It&nbsp;also&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;allows&nbsp;us&nbsp;to&nbsp;turn&nbsp;some&nbsp;specific&nbsp;Types&nbsp;(namely,&nbsp;any&nbsp;aT : predArgType)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;into&nbsp;predicates,&nbsp;specifically,&nbsp;the&nbsp;total&nbsp;predicate&nbsp;over&nbsp;that&nbsp;type,&nbsp;i.e.,&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;fun _ :&nbsp;aT =&gt; true.&nbsp;This&nbsp;allows&nbsp;us&nbsp;to&nbsp;write,&nbsp;e.g.,&nbsp;|'I_n| for the       *)
-(* cardinal of the (finite) type of integers less than n.                   *)
-(*                                                                          *)
-(* Collective predicates have a specific extensional equality,              *)
-(* - A =i B,                                                                *)
-(* while applicative predicates just use the extensional equality of        *)
-(* functions,                                                               *)
-(* - P =1 Q                                                                 *)
-(* The two forms are convertible, however.                                  *)
-(* We lift boolean operations to predicates, defining:                      *)
-(* - predU (union), predI (intersection), predC (complement),               *)
-(*   predD (difference), and preim (preimage, i.e., composition)            *)
-(* For each operation we define three forms, typically:                     *)
-(* - predU : pred T -> pred T -> simpl_pred T                               *)
-(* - [predU A & B], a Notation for predU (mem A) (mem B)                    *)
-(* - xpredU, a Notation for the lambda-expression inside predU,             *)
-(*     which is mostly useful as an argument of =1, since it exposes the    *)
-(*     head constant of the expression to the ssreflect matching algorithm. *)
-(* The syntax for the preimage of a collective predicate A is               *)
-(* - [preim f of A]                                                         *)
-(* Finally, the generic syntax for defining a simpl_pred T is               *)
-(* - [pred x : T | P(x)], [pred x | P(x)], [pred x \in A | P(x)             *)
-(* We also support boolean relations, but only the applicative form, with   *)
-(* types                                                                    *)
-(* - rel T, an alias for T -> pred T                                        *)
-(* - simpl_rel T, an auto-simplifying version, and syntax                   *)
-(*   [rel x y | P(x,y)], [rel x y \in A & B | P(x,y)], etc.                 *)
-(* The notation [rel of fA] can be used to coerce a function returning a    *)
-(* collective predicate to one returning pred T.                            *)
-(****************************************************************************)
-(*
-
-Definition pred T := T -> bool.
-
-Identity Coercion fun_of_pred : pred >-> Funclass.
-
-Definition rel T := T -> pred T.
-
-Identity Coercion fun_of_rel : rel >-> Funclass.
-
-Notation xpred0 := (fun _ => false).
-Notation xpredT := (fun _ => true).
-Notation xpredI := (fun (p1 p2 : pred _) x => p1 x && p2 x).
-Notation xpredU := (fun (p1 p2 : pred _) x => p1 x || p2 x).
-Notation xpredC := (fun (p : pred _) x => negb (p x)).
-Notation xpredD := (fun (p1 p2 : pred _) x => negb (p2 x) && p1 x).
-Notation xpreim := (fun f (p : pred _) x => p (f x)).
-Notation xrelU := (fun (r1 r2 : rel _) x y => r1 x y || r2 x y).
-
-Section Predicates.
-
-Variables T : Type.
-
-Definition subpred (p1 p2 : pred T) := forall x, p1 x -> p2 x.
-
-Definition subrel (r1 r2 : rel T) := forall x y, r1 x y -> r2 x y.
-
-Definition simpl_pred := simpl_fun T bool.
-
-Definition SimplPred (p : pred T) : simpl_pred := SimplFun p.
-
-Coercion pred_of_simpl (p : simpl_pred) : pred T := p : T -> bool.
-
-Definition pred0 := SimplPred xpred0.
-Definition predT := SimplPred xpredT.
-Definition predI p1 p2 := SimplPred (xpredI p1 p2).
-Definition predU p1 p2 := SimplPred (xpredU p1 p2).
-Definition predC p := SimplPred (xpredC p).
-Definition predD p1 p2 := SimplPred (xpredD p1 p2).
-Definition preim rT f (d : pred rT) := SimplPred (xpreim f d).
-
-Definition simpl_rel := simpl_fun T (pred T).
-
-Definition SimplRel (r : rel T) : simpl_rel := [fun x => r x].
-
-Coercion rel_of_simpl_rel (r : simpl_rel) : rel T := fun x y => r x y.
-
-Definition relU r1 r2 := SimplRel (xrelU r1 r2).
-
-Lemma subrelUl : forall r1 r2, subrel r1 (relU r1 r2).
-Proof. red; ins; apply/orP; vauto. Qed.
-
-Lemma subrelUr : forall r1 r2, subrel r2 (relU r1 r2).
-Proof. red; ins; apply/orP; vauto. Qed.
-
-Inductive mem_pred : Type := Mem (_ : pred T).
-
-Definition isMem pT topred mem := 
-  mem = (fun p : pT => Mem (fun x => topred p x)).
-
-Structure predType : Type := PredType {
-  pred_sort :> Type;
-  topred : pred_sort -> pred T;
-  _ : {mem | isMem topred mem}
-}.
-
-Definition mkPredType pT toP := PredType (exist (@isMem pT toP) _ eq_refl).
-
-Canonical Structure predPredType := Eval hnf in @mkPredType (pred T) id.
-Canonical Structure simplPredType := Eval hnf in mkPredType pred_of_simpl.
-
-Coercion pred_of_mem mp : pred_sort predPredType :=
-  match mp with Mem p => fun x => p x end. 
-
-Canonical Structure memPredType := Eval hnf in mkPredType pred_of_mem.
-
-Definition clone_pred U :=
-  fun pT (_ : pred_sort pT -> U) =>
-  fun a mP (pT' := @PredType U a mP) (_ : phant_id pT' pT) => pT'.
-
-End Predicates.
-
-Implicit Arguments topred [[T] p].
-Implicit Arguments pred0 [T].
-Implicit Arguments predT [T].
-
-Notation "[ 'pred' : T | E ]" := (SimplPred (fun _ : T => E))
-  (at level 0, format "[ 'pred' :  T  |  E ]") : fun_scope.
-Notation "[ 'pred' x | E ]" := (SimplPred (fun x => E))
-  (at level 0, x ident, format "[ 'pred'  x  |  E ]") : fun_scope.
-Notation "[ 'pred' x : T | E ]" := (SimplPred (fun x : T => E))
-  (at level 0, x ident, only parsing) : fun_scope.
-Notation "[ 'rel' x y | E ]" := (SimplRel (fun x y => E))
-  (at level 0, x ident, y ident, format "[ 'rel'  x  y  |  E ]") : fun_scope.
-Notation "[ 'rel' x y : T | E ]" := (SimplRel (fun x y : T => E))
-  (at level 0, x ident, y ident, only parsing) : fun_scope.
-
-Notation "[ 'predType' 'Of' T ]" := (@clone_pred _ T _ id _ _ id)
-  (at level 0, format "[ 'predType'  'Of'  T ]") : form_scope.
-
-(* This redundant coercion lets us "inherit" the simpl_predType canonical *)
-(* structure by declaring a coercion to simpl_pred. This hack is the only *)
-(* way to put a predType structure on a predArgType. We use simpl_pred    *)
-(* rather than pred to ensure that /= removes the identity coercion. Note *)
-(* that the coercion will never be used directly for simpl_pred, since    *)
-(* the canonical structure should always resolve.                         *)
-
-Notation pred_class := (pred_sort (predPredType _)).
-Coercion sort_of_simpl_pred T (p : simpl_pred T) : pred_class := p : pred T.
-
-(* This lets us use some types as a synonym for their universal predicate. *)
-(* Unfortunately, this won't work for existing types like bool, unless     *)
-(* we redefine bool, true, false and all bool ops.                         *)
-Definition predArgType := Type.
-Identity Coercion sort_of_predArgType : predArgType >-> Sortclass.
-Coercion pred_of_argType (T : predArgType) : simpl_pred T := predT.
-
-Notation "{ : T }" := (T%type : predArgType)
-  (at level 0, format "{ :  T }") : type_scope.
-
-(* These must be defined outside a Section because "cooking" kills the *)
-(* nosimpl tag.                                                        *)
-
-Definition mem T (pT : predType T) : pT -> mem_pred T :=
-  match tt with tt =>
-    (match pT return pT -> _ with PredType _ _ (exist mem _) => mem end)
-  end.
-
-Definition in_mem T x mp := 
-  match tt with tt => @pred_of_mem T mp x end.
-
-Implicit Arguments mem [[T] pT].
-
-Coercion pred_of_mem_pred T mp := [pred x : T | in_mem x mp].
-
-Definition eq_mem T p1 p2 := forall x : T, in_mem x p1 = in_mem x p2.
-Definition sub_mem T p1 p2 := forall x : T, in_mem x p1 -> in_mem x p2.
-
-Reserved Notation "x \in A" (at level 70, no associativity).
-Reserved Notation "x \notin A" (at level 70, no associativity).
-Reserved Notation "p1 =i p2" (at level 70, no associativity).
-
-Notation "x \in A" := (in_mem x (mem A)) : bool_scope.
-Notation "x \in A" := (in_mem x (mem A)) : bool_scope.
-Notation "x \notin A" := (negb (x \in A)) : bool_scope.
-Notation "A =i B" := (eq_mem (mem A) (mem B)) : type_scope.
-Notation "{ 'subset' A <= B }" := (sub_mem (mem A) (mem B))
-  (at level 0, A, B at level 69,
-   format "{ '[hv' 'subset'  A '/   '  <=  B ']' }") : type_scope.
-Notation "[ 'mem' A ]" := (pred_of_simpl (pred_of_mem_pred (mem A)))
-  (at level 0, only parsing) : fun_scope.
-Notation "[ 'rel' 'Of' fA ]" := (fun x => [mem (fA x)])
-  (at level 0, format "[ 'rel'  'Of'  fA ]") : fun_scope.
-Notation "[ 'predI' A & B ]" := (predI [mem A] [mem B])
-  (at level 0, format "[ 'predI'  A  &  B ]") : fun_scope.
-Notation "[ 'predU' A & B ]" := (predU [mem A] [mem B])
-  (at level 0, format "[ 'predU'  A  &  B ]") : fun_scope.
-Notation "[ 'predD' A & B ]" := (predD [mem A] [mem B])
-  (at level 0, format "[ 'predD'  A  &  B ]") : fun_scope.
-Notation "[ 'predC' A ]" := (predC [mem A])
-  (at level 0, format "[ 'predC'  A ]") : fun_scope.
-Notation "[ 'preim' f 'Of' A ]" := (preim f [mem A])
-  (at level 0, format "[ 'preim'  f  'Of'  A ]") : fun_scope.
-
-Notation "[ 'pred' x \in A ]" := [pred x | x \in A]
-  (at level 0, x ident, format "[ 'pred'  x  \in  A ]") : fun_scope.
-Notation "[ 'pred' x \in A | E ]" := [pred x | (x \in A) && E]
-  (at level 0, x ident, format "[ 'pred'  x  \in  A  |  E ]") : fun_scope.
-Notation "[ 'rel' x y \in A & B | E ]" :=
-  [rel x y | (x \in A) && (y \in B) && E]
-  (at level 0, x ident, y ident,
-   format "[ 'rel'  x  y  \in  A  &  B  |  E ]") : fun_scope.
-Notation "[ 'rel' x y \in A & B ]" := [rel x y | (x \in A) && (y \in B)]
-  (at level 0, x ident, y ident,
-   format "[ 'rel'  x  y  \in  A  &  B ]") : fun_scope.
-Notation "[ 'rel' x y \in A | E ]" := [rel x y \in A & A | E]
-  (at level 0, x ident, y ident,
-   format "[ 'rel'  x  y  \in  A  |  E ]") : fun_scope.
-Notation "[ 'rel' x y \in A ]" := [rel x y \in A & A]
-  (at level 0, x ident, y ident,
-   format "[ 'rel'  x  y  \in  A ]") : fun_scope.
-
-Section simpl_mem.
-
-Variables (T : Type) (pT : predType T).
-
-Lemma mem_topred : forall (p : pT), mem (topred p) = mem p.
-Proof. by unfold mem; case pT; intros T1 app1 [mem1 ->]. Qed.
-
-Lemma topredE : forall x (p : pT), topred p x = (x \in p).
-Proof. by intros; rewrite <-mem_topred. Qed.
-
-Lemma in_simpl : forall x (p : simpl_pred T), (x \in p) = p x.
-Proof. done. Qed.
-
-Lemma simpl_predE : forall (p : pred T), [pred x | p x] =1 p.
-Proof. done. Qed.
-
-(* Definition inE := (in_simpl, simpl_predE). (* to be extended *) *)
-
-Lemma mem_simpl : forall (p : simpl_pred T), mem p = p :> pred T.
-Proof. done. Qed.
-
-Definition memE := mem_simpl. (* could be extended *)
-
-(*
-Lemma mem_mem : forall p : pT, (mem (mem p) = mem p) /\ (mem [mem p] = mem p).
-Proof. by intros p; rewrite <-mem_topred. Qed.
-*)
-
-End simpl_mem.
-
-Section RelationProperties.
-
-(* Caveat: reflexive should not be used to state lemmas, since auto *)
-(* and trivial will not expand the constant.                        *)
-
-Variable T : Type.
-
-Variable R : rel T.
-
-Definition total := forall x y, R x y || R y x.
-Definition transitive := forall x y z, R x y -> R y z -> R x z.
-
-Definition symmetric := forall x y, R x y = R y x.
-Definition antisymmetric := forall x y, R x y -> R y x -> x = y.
-Definition pre_symmetric := forall x y, R x y -> R y x.
-
-Lemma symmetric_from_pre : pre_symmetric -> symmetric.
-Proof. split/; apply H. Qed.
-
-Lemma pre_from_symmetric : symmetric -> pre_symmetric.
-Proof. by red; ins; rewrite H. Qed.
-
-Definition reflexive := forall x, R x x.
-Definition irreflexive := forall x, R x x = false.
-
-Definition left_transitive := forall x y, R x y -> R x =1 R y.
-Definition right_transitive := forall x y, R x y -> R^~ x =1 R^~ y.
-
-End RelationProperties.
-
-Lemma rev_trans : forall T (R : rel T),
-  transitive R -> transitive (fun x y => R y x).
-Proof. eby red; intros; eapply H. Qed.
-
-(* Property localization *)
-
-Notation Local "{ 'all1' P }" := (forall x, P x : Prop) (at level 0).
-Notation Local "{ 'all2' P }" := (forall x y, P x y : Prop) (at level 0).
-Notation Local "{ 'all3' P }" := (forall x y z, P x y z: Prop) (at level 0).
-Notation Local ph := (phantom _).
-
-Section LocalProperties.
-
-Variables T1 T2 T3 : Type.
-
-Variables (d1 : mem_pred T1) (d2 : mem_pred T2) (d3 : mem_pred T3).
-Notation Local ph := (phantom Prop).
-
-Definition prop_for (x : T1) P (_ : ph {all1 P}) := P x.
-
-Lemma forE : forall x P phP, @prop_for x P phP = P x.
-Proof. done. Qed. 
-
-Definition prop_in1 P (_ : ph {all1 P}) :=
-  forall x, in_mem x d1 -> P x.
-
-Definition prop_in11 P (_ : ph {all2 P}) :=
-  forall x y, in_mem x d1 -> in_mem y d2 -> P x y.
-
-Definition prop_in2 P (_ : ph {all2 P}) :=
-  forall x y, in_mem x d1 -> in_mem y d1 -> P x y.
-
-Definition prop_in111 P (_ : ph {all3 P}) :=
-  forall x y z, in_mem x d1 -> in_mem y d2 -> in_mem z d3 -> P x y z.
-
-Definition prop_in12 P (_ : ph {all3 P}) :=
-  forall x y z, in_mem x d1 -> in_mem y d2 -> in_mem z d2 -> P x y z.
-
-Definition prop_in21 P (_ : ph {all3 P}) :=
-  forall x y z, in_mem x d1 -> in_mem y d1 -> in_mem z d2 -> P x y z.
-
-Definition prop_in3 P (_ : ph {all3 P}) :=
-  forall x y z, in_mem x d1 -> in_mem y d1 -> in_mem z d1 -> P x y z.
-
-Variable f : T1 -> T2.
-
-Definition prop_on1 Pf P (_ : phantom T3 (Pf f)) (_ : ph {all1 P}) :=
-  forall x, in_mem (f x) d2 -> P x.
-
-Definition prop_on2 Pf P (_ : phantom T3 (Pf f)) (_ : ph {all2 P}) :=
-  forall x y, in_mem (f x) d2 -> in_mem (f y) d2 -> P x y.
-
-End LocalProperties.
-
-Implicit Arguments prop_in1 [T1 P].
-Implicit Arguments prop_in11 [T1 T2 P].
-Implicit Arguments prop_in2 [T1 P].
-Implicit Arguments prop_in111 [T1 T2 T3 P].
-Implicit Arguments prop_in12 [T1 T2 P].
-Implicit Arguments prop_in21 [T1 T2 P].
-Implicit Arguments prop_in3 [T1 P].
-Implicit Arguments prop_on1 [T1 T2 T3 f Pf P].
-Implicit Arguments prop_on2 [T1 T2 T3 f Pf P].
-
-Definition inPhantom := Phantom Prop.
-Definition onPhantom T P (x : T) := Phantom Prop (P x).
-
-Definition bijective_in aT rT (d : mem_pred aT) (f : aT -> rT) :=
-  exists2 g, prop_in1 d (inPhantom (cancel f g))
-           & prop_on1 d (Phantom _ (cancel g)) (onPhantom (cancel g) f).
-
-Definition bijective_on aT rT (cd : mem_pred rT) (f : aT -> rT) :=
-  exists2 g, prop_on1 cd (Phantom _ (cancel f)) (onPhantom (cancel f) g)
-           & prop_in1 cd (inPhantom (cancel g f)).
-
-Notation "{ 'for' x , P }" :=
-  (prop_for x (inPhantom P))
-  (at level 0, format "{ 'for'  x ,  P }") : type_scope.
-
-Notation "{ 'in' d , P }" :=
-  (prop_in1 (mem d) (inPhantom P))
-  (at level 0, format "{ 'in'  d ,  P }") : type_scope.
-
-Notation "{ 'in' d1 & d2 , P }" :=
-  (prop_in11 (mem d1) (mem d2) (inPhantom P))
-  (at level 0, format "{ 'in'  d1  &  d2 ,  P }") : type_scope.
-
-Notation "{ 'in' d & , P }" :=
-  (prop_in2 (mem d) (inPhantom P))
-  (at level 0, format "{ 'in'  d  & ,  P }") : type_scope.
-
-Notation "{ 'in' d1 & d2 & d3 , P }" :=
-  (prop_in111 (mem d1) (mem d2) (mem d3) (inPhantom P))
-  (at level 0, format "{ 'in'  d1  &  d2  &  d3 ,  P }") : type_scope.
-
-Notation "{ 'in' d1 & & d3 , P }" :=
-  (prop_in21 (mem d1) (mem d3) (inPhantom P))
-  (at level 0, format "{ 'in'  d1  &  &  d3 ,  P }") : type_scope.
-
-Notation "{ 'in' d1 & d2 & , P }" :=
-  (prop_in12 (mem d1) (mem d2) (inPhantom P))
-  (at level 0, format "{ 'in'  d1  &  d2  & ,  P }") : type_scope.
-
-Notation "{ 'in' d & & , P }" :=
-  (prop_in3 (mem d) (inPhantom P))
-  (at level 0, format "{ 'in'  d  &  & ,  P }") : type_scope.
-
-Notation "{ 'on' cd , P }" :=
-  (prop_on1 (mem cd) (inPhantom P) (inPhantom P))
-  (at level 0, format "{ 'on'  cd ,  P }") : type_scope.
-
-Notation "{ 'on' cd & , P }" :=
-  (prop_on2 (mem cd) (inPhantom P) (inPhantom P))
-  (at level 0, format "{ 'on'  cd  & ,  P }") : type_scope.
-
-Notation "{ 'on' cd , P & g }" :=
-  (prop_on1 (mem cd) (Phantom (_ -> Prop) P) (onPhantom P g))
-  (at level 0, format "{ 'on'  cd ,  P  &  g }") : type_scope.
-
-Notation "{ 'in' d , 'bijective' f }" := (bijective_in (mem d) f)
-  (at level 0, f at level 8,
-   format "{ 'in'  d ,  'bijective'  f }") : type_scope.
-
-Notation "{ 'on' cd , 'bijective' f }" := (bijective_on (mem cd) f)
-  (at level 0, f at level 8,
-   format "{ 'on'  cd ,  'bijective'  f }") : type_scope.
-
-(* Weakening and monotonicity lemmas for localized predicates. *)
-(* Note that using these lemmas in backward reasoning will     *)
-(* cause the expansion of the predicate definition, as Coq     *)
-(* needs to expose the quantifier to apply these lemmas. We    *)
-(* define some specialized variants to avoid this for some of  *)
-(* the ssrfun definitions.                                     *)
-
-Section LocalGlobal.
-
-Variables T1 T2 T3 : predArgType.
-Variables (D1 : pred T1) (D2 : pred T2) (D3 : pred T3).
-Variables (d1 d1' : mem_pred T1) (d2 d2' : mem_pred T2) (d3 d3' : mem_pred T3).
-Variables (f f' : T1 -> T2) (g : T2 -> T1) (h : T3).
-Variables (P1 : T1 -> Prop) (P2 : T1 -> T2 -> Prop).
-Variable P3 : T1 -> T2 -> T3 -> Prop.
-Variable Q1 : (T1 -> T2) -> T1 -> Prop.
-Variable Q1l : (T1 -> T2) -> T3 -> T1 -> Prop.
-Variable Q2 : (T1 -> T2) -> T1 -> T1 -> Prop.
-
-Hypothesis sub1 : sub_mem d1 d1'.
-Hypothesis sub2 : sub_mem d2 d2'.
-Hypothesis sub3 : sub_mem d3 d3'.
-
-Lemma in1W : {all1 P1} -> {in D1, {all1 P1}}.
-Proof. by red. Qed.
-Lemma in2W : {all2 P2} -> {in D1 & D2, {all2 P2}}.
-Proof. by red. Qed.
-Lemma in3W : {all3 P3} -> {in D1 & D2 & D3, {all3 P3}}.
-Proof. by red. Qed.
-
-Lemma in1T : {in T1, {all1 P1}} -> {all1 P1}.
-Proof. auto. Qed.
-Lemma in2T : {in T1 & T2, {all2 P2}} -> {all2 P2}.
-Proof. auto. Qed.
-Lemma in3T : {in T1 & T2 & T3, {all3 P3}} -> {all3 P3}.
-Proof. auto. Qed.
-
-Lemma sub_in1 : forall Ph : ph {all1 P1},
-  prop_in1 d1' Ph -> prop_in1 d1 Ph.
-Proof. by intros ? allP x; move/sub1; apply allP. Qed.
-
-Lemma sub_in11 : forall Ph : ph {all2 P2},
-  prop_in11 d1' d2' Ph -> prop_in11 d1 d2 Ph.
-Proof. by intros ? allP x1 x2; move/sub1; intro d1x1; move/sub2; apply allP. Qed.
-
-Lemma sub_in111 :  forall Ph : ph {all3 P3},
-  prop_in111 d1' d2' d3' Ph -> prop_in111 d1 d2 d3 Ph.
-Proof.
-intros ? allP x1 x2 x3.
-by move/sub1; intro; move/sub2; intro; move/sub3; apply allP.
-Qed.
-
-Let allQ1 f'' := {all1 Q1 f''}.
-Let allQ1l f'' h' := {all1 Q1l f'' h'}.
-Let allQ2 f'' := {all2 Q2 f''}.
-
-Lemma on1W : allQ1 f -> {on D2, allQ1 f}.
-Proof. by red. Qed.
-Lemma on1lW : allQ1l f h -> {on D2, allQ1l f & h}.
-Proof. by red. Qed.
-Lemma on2W : allQ2 f -> {on D2 &, allQ2 f}.
-Proof. by red. Qed.
-
-Lemma on1T : {on T2, allQ1 f} -> allQ1 f.
-Proof. red; auto. Qed.
-Lemma on1lT : {on T2, allQ1l f & h} -> allQ1l f h.
-Proof. red; auto. Qed.
-Lemma on2T : {on T2 &, allQ2 f} -> allQ2 f.
-Proof. red; auto. Qed.
-
-Lemma subon1 : forall (Phf : ph (allQ1 f)) (Ph : ph (allQ1 f)),
-  prop_on1 d2' Phf Ph -> prop_on1 d2 Phf Ph.
-Proof. by intros ? ? allQ x; move/sub2; apply allQ. Qed.
-
-Lemma subon1l : forall (Phf : ph (allQ1l f)) (Ph : ph (allQ1l f h)),
-  prop_on1 d2' Phf Ph -> prop_on1 d2 Phf Ph.
-Proof. by intros ? ? allQ x; move/sub2; apply allQ. Qed.
-
-Lemma subon2 : forall (Phf : ph (allQ2 f)) (Ph : ph (allQ2 f)),
-  prop_on2 d2' Phf Ph -> prop_on2 d2 Phf Ph.
-Proof. by intros ? ? allQ x y; move/sub2; intro; move/sub2; apply allQ. Qed.
-
-Lemma can_in_inj : {in D1, cancel f g} -> {in D1 &, injective f}.
-Proof. intros fK x y; do 2 (move/fK; intro); congruence. Qed.
-
-Lemma canLR_in : forall x y,
-  {in D1, cancel f g} -> y \in D1 -> x = f y -> g x = y.
-Proof. by intros x y fK D1y ->; rewrite fK. Qed.
-
-Lemma canRL_in : forall x y,
-  {in D1, cancel f g} -> x \in D1 -> f x = y -> x = g y.
-Proof. by intros x y fK D1x <-; rewrite fK. Qed.
-
-Lemma on_can_inj : {on D2, cancel f & g} -> {on D2 &, injective f}.
-Proof. intros fK x y; do 2 (move/fK; intro); congruence. Qed.
-
-Lemma canLR_on : forall x y,
-  {on D2, cancel f & g} -> f y \in D2 -> x = f y -> g x = y.
-Proof. by intros x y fK D2fy ->; rewrite fK. Qed.
-
-Lemma canRL_on : forall x y,
-  {on D2, cancel f & g} -> f x \in D2 -> f x = y -> x = g y.
-Proof. by intros x y fK D2fx <-; rewrite fK. Qed.
-
-Lemma inW_bij : bijective f -> {in D1, bijective f}.
-Proof. by destruct 1 as [g']; exists g'; red; auto. Qed.
-
-Lemma onW_bij : bijective f -> {on D2, bijective f}.
-Proof. by destruct 1 as [g']; exists g'; red; auto. Qed.
-
-Lemma inT_bij : {in T1, bijective f} -> bijective f.
-Proof. destruct 1 as [g']; exists g'; red; auto. Qed.
-
-Lemma onT_bij : {on T2, bijective f} -> bijective f.
-Proof. destruct 1 as [g']; exists g'; red; auto. Qed.
-
-Lemma sub_in_bij : forall D1' : pred T1,
-  {subset D1 <= D1'} -> {in D1', bijective f} -> {in D1, bijective f}.
-Proof. destruct 2 as [g']; eexists g'; red; auto. Qed. 
-
-Lemma subon_bij :  forall D2' : pred T2,
- {subset D2 <= D2'} -> {on D2', bijective f} -> {on D2, bijective f}.
-Proof. destruct 2 as [g']; eexists g'; red; auto. Qed. 
-
-End LocalGlobal.
-
-Lemma sub_in2 : forall T d d' (P : T -> T -> Prop),
-  sub_mem d d' -> forall Ph : ph {all2 P}, prop_in2 d' Ph -> prop_in2 d Ph.
-Proof. by intros until 1; apply sub_in11. Qed.
-
-Lemma sub_in3 : forall T d d' (P : T -> T -> T -> Prop),
-  sub_mem d d' -> forall Ph : ph {all3 P}, prop_in3 d' Ph -> prop_in3 d Ph.
-Proof. by intros until 1; apply sub_in111. Qed.
-
-Lemma sub_in12 : forall T1 T d1 d1' d d' (P : T1 -> T -> T -> Prop),
-  sub_mem d1 d1' -> sub_mem d d' ->
-  forall Ph : ph {all3 P}, prop_in12 d1' d' Ph -> prop_in12 d1 d Ph.
-Proof. by intros until 2; apply sub_in111. Qed.
-
-Lemma sub_in21 : forall T T3 d d' d3 d3' (P : T -> T -> T3 -> Prop),
-  sub_mem d d' -> sub_mem d3 d3' ->
-  forall Ph : ph {all3 P}, prop_in21 d' d3' Ph -> prop_in21 d d3 Ph.
-Proof. by intros until 2; apply sub_in111. Qed.
-
-*)
-
-(** Comparison for [nat] *)
-
-Fixpoint eqn_rec (x y: nat) {struct x} :=
-   match x, y with
-     | O, O => true
-     | S x, S y => eqn_rec x y
-     | _, _ => false
-   end.
-
-Definition eqn := match tt with tt => eqn_rec end.
-
-Lemma eqnP: forall x y, reflect (x = y) (eqn x y).
-Proof.
-  induction[] x [y]; vauto. 
-  change (eqn (S x) (S y)) with (eqn x y).
-  case IHx; constructor; congruence.
-Qed.
-
-Canonical Structure nat_eqMixin := EqMixin eqnP.
-Canonical Structure nat_eqType := Eval hnf in EqType nat nat_eqMixin.
-
-Lemma eqnE : eqn = (@eq_op _).
-Proof. done. Qed.
-*)</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/arrival_sequence.html b/arrival_sequence.html
deleted file mode 100644
index cc3c33938..000000000
--- a/arrival_sequence.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>arrival_sequence</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library arrival_sequence</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definitions&nbsp;and&nbsp;properties&nbsp;of&nbsp;job&nbsp;arrival&nbsp;sequences.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="ArrivalSequence"><span class="id" type="module">ArrivalSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;time&nbsp;be&nbsp;the&nbsp;set&nbsp;of&nbsp;natural&nbsp;numbers.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.time"><span class="id" type="definition">time</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;define&nbsp;a&nbsp;job&nbsp;arrival&nbsp;sequence&nbsp;(can&nbsp;be&nbsp;infinite).&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ArrivalSequence.ArrivalSequenceDef"><span class="id" type="section">ArrivalSequenceDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;any&nbsp;job&nbsp;type&nbsp;with&nbsp;decidable&nbsp;equality,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ArrivalSequence.ArrivalSequenceDef.Job"><span class="id" type="variable">Job</span></a>: <span class="id" type="abbreviation">eqType</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;an&nbsp;arrival&nbsp;sequence&nbsp;is&nbsp;a&nbsp;mapping&nbsp;from&nbsp;time&nbsp;to&nbsp;a&nbsp;sequence&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a> -&gt; <span class="id" type="abbreviation">seq</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef"><span class="id" type="section">ArrivalSequenceDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Note&nbsp;that&nbsp;Job&nbsp;denotes&nbsp;the&nbsp;universe&nbsp;of&nbsp;all&nbsp;possible&nbsp;jobs.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;order&nbsp;to&nbsp;distinguish&nbsp;jobs&nbsp;of&nbsp;different&nbsp;arrival&nbsp;sequences,&nbsp;next&nbsp;we<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;define&nbsp;a&nbsp;subtype&nbsp;of&nbsp;Job&nbsp;called&nbsp;JobIn.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ArrivalSequence.JobInArrivalSequence"><span class="id" type="section">JobInArrivalSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Whether&nbsp;a&nbsp;job&nbsp;arrives&nbsp;in&nbsp;a&nbsp;particular&nbsp;sequence&nbsp;at&nbsp;time&nbsp;t&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.arrives_at"><span class="id" type="definition">arrives_at</span></a> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>) (<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;job&nbsp;j&nbsp;of&nbsp;type&nbsp;(JobIn&nbsp;arr_seq)&nbsp;is&nbsp;a&nbsp;job&nbsp;that&nbsp;arrives&nbsp;at&nbsp;some&nbsp;particular<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time&nbsp;in&nbsp;arr_seq.&nbsp;It&nbsp;holds&nbsp;the&nbsp;arrival&nbsp;time&nbsp;and&nbsp;a&nbsp;proof&nbsp;of&nbsp;arrival.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Record</span> <a name="ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> (<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>) : <span class="id" type="keyword">Type</span> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a name="ArrivalSequence._job_in"><span class="id" type="projection">_job_in</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a name="ArrivalSequence._arrival_time"><span class="id" type="projection">_arrival_time</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>; <span class="comment">(*&nbsp;arrival&nbsp;time&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">_</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrives_at"><span class="id" type="definition">arrives_at</span></a> <a class="idref" href="arrival_sequence.html#_job_in"><span class="id" type="method">_job_in</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#_arrival_time"><span class="id" type="method">_arrival_time</span></a> <span class="comment">(*&nbsp;proof&nbsp;of&nbsp;arrival&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Define&nbsp;a&nbsp;coercion&nbsp;that&nbsp;states&nbsp;that&nbsp;every&nbsp;JobIn&nbsp;is&nbsp;a&nbsp;Job.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Coercion</span> <span class="id" type="var">JobIn_is_Job</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>} (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence._job_in"><span class="id" type="projection">_job_in</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Define&nbsp;job&nbsp;arrival&nbsp;time&nbsp;as&nbsp;that&nbsp;time&nbsp;that&nbsp;the&nbsp;job&nbsp;arrives&nbsp;(only&nbsp;works&nbsp;for&nbsp;JobIn).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>} (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence._arrival_time"><span class="id" type="projection">_arrival_time</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Finally,&nbsp;we&nbsp;assume&nbsp;a&nbsp;decidable&nbsp;equality&nbsp;for&nbsp;JobIn,&nbsp;to&nbsp;make&nbsp;it&nbsp;compatible<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;ssreflect.&nbsp;TODO:&nbsp;Is&nbsp;there&nbsp;a&nbsp;better&nbsp;way&nbsp;to&nbsp;do&nbsp;this?&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.jobin_eqdef"><span class="id" type="definition">jobin_eqdef</span></a> (<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence.Job"><span class="id" type="variable">Job</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">fun</span> <span class="id" type="var">j1</span> <span class="id" type="var">j2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a> =&gt; <span class="id" type="notation">(</span><a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn_is_Job"><span class="id" type="definition">JobIn_is_Job</span></a> <a class="idref" href="arrival_sequence.html#j1"><span class="id" type="variable">j1</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">==</span> <span class="id" type="notation">(</span><a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn_is_Job"><span class="id" type="definition">JobIn_is_Job</span></a> <a class="idref" href="arrival_sequence.html#j2"><span class="id" type="variable">j2</span></a><span class="id" type="notation">)</span>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Axiom</span> <a name="ArrivalSequence.eqn_jobin"><span class="id" type="axiom">eqn_jobin</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">arr_seq</span>, <span class="id" type="definition">Equality.axiom</span> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.jobin_eqdef"><span class="id" type="definition">jobin_eqdef</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Canonical</span> <span class="id" type="var">jobin_eqMixin</span> <span class="id" type="var">arr_seq</span> := <span class="id" type="abbreviation">EqMixin</span> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.eqn_jobin"><span class="id" type="axiom">eqn_jobin</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Canonical</span> <span class="id" type="var">jobin_eqType</span> <span class="id" type="var">arr_seq</span> := <span class="id" type="keyword">Eval</span> <span class="id" type="tactic">hnf</span> <span class="id" type="keyword">in</span> <span class="id" type="abbreviation">EqType</span> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.jobin_eqMixin"><span class="id" type="definition">jobin_eqMixin</span></a> <a class="idref" href="arrival_sequence.html#arr_seq"><span class="id" type="variable">arr_seq</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence"><span class="id" type="section">JobInArrivalSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;valid&nbsp;arrival&nbsp;sequence&nbsp;must&nbsp;satisfy&nbsp;some&nbsp;properties.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ArrivalSequence.ArrivalSequenceProperties"><span class="id" type="section">ArrivalSequenceProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ArrivalSequence.ArrivalSequenceProperties.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;job&nbsp;j&nbsp;cannot&nbsp;arrive&nbsp;at&nbsp;two&nbsp;different&nbsp;times.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.no_multiple_arrivals"><span class="id" type="definition">no_multiple_arrivals</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.Job"><span class="id" type="variable">Job</span></a>) <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.arrives_at"><span class="id" type="definition">arrives_at</span></a> <a class="idref" href="arrival_sequence.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#t1"><span class="id" type="variable">t1</span></a> -&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrives_at"><span class="id" type="definition">arrives_at</span></a> <a class="idref" href="arrival_sequence.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#t2"><span class="id" type="variable">t2</span></a> -&gt; <a class="idref" href="arrival_sequence.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="arrival_sequence.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;sequence&nbsp;of&nbsp;arrivals&nbsp;at&nbsp;a&nbsp;particular&nbsp;time&nbsp;has&nbsp;no&nbsp;duplicates.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.arrival_sequence_is_a_set"><span class="id" type="definition">arrival_sequence_is_a_set</span></a> := <span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>, <span class="id" type="definition">uniq</span> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="arrival_sequence.html#t"><span class="id" type="variable">t</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties"><span class="id" type="section">ArrivalSequenceProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;define&nbsp;whether&nbsp;a&nbsp;job&nbsp;has&nbsp;arrived&nbsp;in&nbsp;an&nbsp;interval.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ArrivalSequence.ArrivingJobs"><span class="id" type="section">ArrivingJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ArrivalSequence.ArrivingJobs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;job&nbsp;has&nbsp;arrived&nbsp;at&nbsp;time&nbsp;t&nbsp;iff&nbsp;it&nbsp;arrives&nbsp;at&nbsp;some&nbsp;time&nbsp;t_0,&nbsp;with&nbsp;0&nbsp;&lt;=&nbsp;t_0&nbsp;&lt;=&nbsp;t.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.has_arrived"><span class="id" type="definition">has_arrived</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;job&nbsp;arrived&nbsp;before&nbsp;t&nbsp;iff&nbsp;it&nbsp;arrives&nbsp;at&nbsp;some&nbsp;time&nbsp;t_0,&nbsp;with&nbsp;0&nbsp;&lt;=&nbsp;t_0&nbsp;&lt;&nbsp;t.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.arrived_before"><span class="id" type="definition">arrived_before</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;job&nbsp;arrives&nbsp;between&nbsp;t1&nbsp;and&nbsp;t2&nbsp;iff&nbsp;it&nbsp;arrives&nbsp;at&nbsp;some&nbsp;time&nbsp;t&nbsp;with&nbsp;t1&nbsp;&lt;=&nbsp;t&nbsp;&lt;&nbsp;t2.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ArrivalSequence.arrived_between"><span class="id" type="definition">arrived_between</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <a class="idref" href="arrival_sequence.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.ArrivingJobs"><span class="id" type="section">ArrivingJobs</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="arrival_sequence.html#"><span class="id" type="module">ArrivalSequence</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bertogna_edf_comp.html b/bertogna_edf_comp.html
deleted file mode 100644
index 38312d17e..000000000
--- a/bertogna_edf_comp.html
+++ /dev/null
@@ -1,473 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>bertogna_edf_comp</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library bertogna_edf_comp</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="platform.html#"><span class="id" type="library">platform</span></a> <a class="idref" href="interference.html#"><span class="id" type="library">interference</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="workload_bound.html#"><span class="id" type="library">workload_bound</span></a> <a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#"><span class="id" type="library">bertogna_fp_theory</span></a> <a class="idref" href="bertogna_edf_theory.html#"><span class="id" type="library">bertogna_edf_theory</span></a> <a class="idref" href="interference_bound_edf.html#"><span class="id" type="library">interference_bound_edf</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">div</span> <span class="id" type="library">path</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="ResponseTimeIterationEDF"><span class="id" type="module">ResponseTimeIterationEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">Workload</span> <span class="id" type="var">Schedulability</span> <span class="id" type="var">ResponseTime</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">Priority</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">WorkloadBound</span> <span class="id" type="var">EDFSpecificBound</span> <span class="id" type="var">ResponseTimeAnalysisFP</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">ResponseTimeAnalysisEDF</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;define&nbsp;the&nbsp;algorithm&nbsp;of&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;analysis&nbsp;for&nbsp;EDF&nbsp;scheduling.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis"><span class="id" type="section">Analysis</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;During&nbsp;the&nbsp;iterations&nbsp;of&nbsp;the&nbsp;algorithm,&nbsp;we&nbsp;pass&nbsp;around&nbsp;pairs<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;tasks&nbsp;and&nbsp;computed&nbsp;response-time&nbsp;bounds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>)%<span class="id" type="var">type</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;platform&nbsp;with&nbsp;num_cpus&nbsp;processors.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;recall&nbsp;the&nbsp;interference&nbsp;bound&nbsp;under&nbsp;EDF,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.I"><span class="id" type="variable">I</span></a> (<span class="id" type="var">rt_bounds</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.total_interference_bound_edf"><span class="id" type="definition">total_interference_bound_edf</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <span class="id" type="keyword">delta</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;which&nbsp;yields&nbsp;the&nbsp;following&nbsp;response-time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.edf_response_time_bound"><span class="id" type="definition">edf_response_time_bound</span></a> (<span class="id" type="var">rt_bounds</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.I"><span class="id" type="variable">I</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="keyword">delta</span>) <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also&nbsp;note&nbsp;that&nbsp;a&nbsp;response-time&nbsp;is&nbsp;only&nbsp;valid&nbsp;if&nbsp;it&nbsp;is&nbsp;no&nbsp;larger<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;the&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.R_le_deadline"><span class="id" type="definition">R_le_deadline</span></a> (<span class="id" type="var">pair</span>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> (<span class="id" type="var">tsk</span>, <span class="id" type="var">R</span>) := <a class="idref" href="bertogna_edf_comp.html#pair"><span class="id" type="variable">pair</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next&nbsp;we&nbsp;define&nbsp;the&nbsp;fixed-point&nbsp;iteration&nbsp;for&nbsp;computing<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bertogna's&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;a&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;a&nbsp;sequence&nbsp;'rt_bounds'&nbsp;of&nbsp;task&nbsp;and&nbsp;response-time&nbsp;bounds<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;the&nbsp;previous&nbsp;iteration,&nbsp;we&nbsp;compute&nbsp;the&nbsp;response-time<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bound&nbsp;of&nbsp;a&nbsp;single&nbsp;task&nbsp;using&nbsp;the&nbsp;RTA&nbsp;for&nbsp;EDF.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.update_bound"><span class="id" type="definition">update_bound</span></a> (<span class="id" type="var">rt_bounds</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">pair</span> : <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> (<span class="id" type="var">tsk</span>, <span class="id" type="var">R</span>) := <a class="idref" href="bertogna_edf_comp.html#pair"><span class="id" type="variable">pair</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_response_time_bound"><span class="id" type="definition">edf_response_time_bound</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;compute&nbsp;the&nbsp;response-time&nbsp;bounds&nbsp;of&nbsp;the&nbsp;entire&nbsp;task&nbsp;set,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;We&nbsp;start&nbsp;the&nbsp;iteration&nbsp;with&nbsp;a&nbsp;sequence&nbsp;of&nbsp;tasks&nbsp;and&nbsp;costs:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;(task1,&nbsp;cost1),&nbsp;(task2,&nbsp;cost2),&nbsp;...&gt;.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">map</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">t</span> =&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#t"><span class="id" type="variable">t</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#t"><span class="id" type="variable">t</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>) <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;we&nbsp;successively&nbsp;update&nbsp;the&nbsp;the&nbsp;response-time&nbsp;bounds&nbsp;based<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;the&nbsp;slack&nbsp;computed&nbsp;in&nbsp;the&nbsp;previous&nbsp;iteration.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<span class="id" type="var">rt_bounds</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">map</span> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.update_bound"><span class="id" type="definition">update_bound</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a>) <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;ensure&nbsp;that&nbsp;the&nbsp;procedure&nbsp;converges,&nbsp;we&nbsp;run&nbsp;the&nbsp;iteration&nbsp;a<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"sufficient"&nbsp;number&nbsp;of&nbsp;times:&nbsp;task_deadline&nbsp;tsk&nbsp;-&nbsp;task_cost&nbsp;tsk&nbsp;+&nbsp;1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;corresponds&nbsp;to&nbsp;the&nbsp;time&nbsp;complexity&nbsp;of&nbsp;the&nbsp;procedure.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <span class="id" type="var">tsk</span> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <span class="id" type="var">tsk</span><span class="id" type="notation">)</span> <span class="id" type="notation">+</span> 1.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;This&nbsp;yields&nbsp;the&nbsp;following&nbsp;definition&nbsp;for&nbsp;the&nbsp;RTA.&nbsp;At&nbsp;the&nbsp;end&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;iteration,&nbsp;we&nbsp;check&nbsp;if&nbsp;all&nbsp;computed&nbsp;response-time&nbsp;bounds<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;less&nbsp;than&nbsp;or&nbsp;equal&nbsp;to&nbsp;the&nbsp;deadline,&nbsp;in&nbsp;which&nbsp;case&nbsp;they&nbsp;are<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valid.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">R_values</span> := <span class="id" type="definition">iter</span> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a>) <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a>) <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">if</span> <span class="id" type="notation">(</span><span class="id" type="definition">all</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.R_le_deadline"><span class="id" type="definition">R_le_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#R_values"><span class="id" type="variable">R_values</span></a><span class="id" type="notation">)</span> <span class="id" type="keyword">then</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_edf_comp.html#R_values"><span class="id" type="variable">R_values</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;schedulability&nbsp;test&nbsp;simply&nbsp;checks&nbsp;if&nbsp;we&nbsp;got&nbsp;a&nbsp;list&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bounds&nbsp;(i.e.,&nbsp;if&nbsp;the&nbsp;computation&nbsp;did&nbsp;not&nbsp;fail).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.edf_schedulable"><span class="id" type="definition">edf_schedulable</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;section,&nbsp;we&nbsp;prove&nbsp;several&nbsp;helper&nbsp;lemmas&nbsp;about&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;of&nbsp;tasks/response-time&nbsp;bounds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.SimpleLemmas"><span class="id" type="section">SimpleLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Updating&nbsp;a&nbsp;single&nbsp;response-time&nbsp;bound&nbsp;does&nbsp;not&nbsp;modify&nbsp;the&nbsp;task.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_update_bound"><span class="id" type="lemma">edf_claimed_bounds_unzip1_update_bound</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">l</span> <span class="id" type="var">rt_bounds</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">unzip1</span> (<span class="id" type="definition">map</span> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.update_bound"><span class="id" type="definition">update_bound</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a>) <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;At&nbsp;any&nbsp;point&nbsp;of&nbsp;the&nbsp;iteration,&nbsp;the&nbsp;tasks&nbsp;are&nbsp;the&nbsp;same.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_iteration"><span class="id" type="lemma">edf_claimed_bounds_unzip1_iteration</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">l</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">unzip1</span> (<span class="id" type="definition">iter</span> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>)) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;iteration&nbsp;preserves&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;list.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_size"><span class="id" type="lemma">edf_claimed_bounds_size</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">l</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">size</span> (<span class="id" type="definition">iter</span> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>)) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">size</span> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;analysis&nbsp;succeeds,&nbsp;the&nbsp;computed&nbsp;response-time&nbsp;bounds&nbsp;are&nbsp;no&nbsp;smaller<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;the&nbsp;task&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_ge_cost"><span class="id" type="lemma">edf_claimed_bounds_ge_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">l</span> <span class="id" type="var">k</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><span class="id" type="definition">iter</span> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#l"><span class="id" type="variable">l</span></a>)<span class="id" type="notation">)</span> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;analysis&nbsp;suceeds,&nbsp;the&nbsp;computed&nbsp;response-time&nbsp;bounds&nbsp;are&nbsp;no&nbsp;larger<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;the&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_le_deadline"><span class="id" type="lemma">edf_claimed_bounds_le_deadline</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts</span> <span class="id" type="var">rt_bounds</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;list&nbsp;contains&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;every&nbsp;task&nbsp;in&nbsp;the&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_has_R_for_every_task"><span class="id" type="lemma">edf_claimed_bounds_has_R_for_every_task</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts</span> <span class="id" type="var">rt_bounds</span> <span class="id" type="var">tsk</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">R</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.SimpleLemmas"><span class="id" type="section">SimpleLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;As&nbsp;required&nbsp;by&nbsp;the&nbsp;proof&nbsp;of&nbsp;convergence,&nbsp;we&nbsp;show&nbsp;that&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interference&nbsp;bound&nbsp;is&nbsp;monotonically&nbsp;increasing&nbsp;with&nbsp;both<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;size&nbsp;of&nbsp;the&nbsp;interval&nbsp;and&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;previous<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bounds.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO:&nbsp;move&nbsp;to&nbsp;bertogna_edf_theory.v?&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound"><span class="id" type="section">MonotonicityOfInterferenceBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk"><span class="id" type="variable">tsk</span></a> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_period_positive"><span class="id" type="variable">H_period_positive</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'"><span class="id" type="variable">delta'</span></a> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R"><span class="id" type="variable">R</span></a> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'"><span class="id" type="variable">R'</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_delta_monotonic"><span class="id" type="variable">H_delta_monotonic</span></a>: <span class="id" type="keyword">delta</span> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'"><span class="id" type="variable">delta'</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_response_time_monotonic"><span class="id" type="variable">H_response_time_monotonic</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'"><span class="id" type="variable">R'</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_cost_le_rt_bound"><span class="id" type="variable">H_cost_le_rt_bound</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.interference_bound_edf_monotonic"><span class="id" type="lemma">interference_bound_edf_monotonic</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf"><span class="id" type="definition">interference_bound_edf</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="keyword">delta</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf"><span class="id" type="definition">interference_bound_edf</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'"><span class="id" type="variable">delta'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'"><span class="id" type="variable">R'</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound"><span class="id" type="section">MonotonicityOfInterferenceBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;the&nbsp;convergence&nbsp;of&nbsp;the&nbsp;RTA&nbsp;procedure.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;we&nbsp;define&nbsp;the&nbsp;RTA&nbsp;procedure&nbsp;as&nbsp;the&nbsp;application&nbsp;of&nbsp;a&nbsp;function<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;fixed&nbsp;number&nbsp;of&nbsp;times,&nbsp;this&nbsp;translates&nbsp;into&nbsp;proving&nbsp;that&nbsp;the&nbsp;value<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;iteration&nbsp;at&nbsp;(max_steps&nbsp;ts)&nbsp;is&nbsp;equal&nbsp;to&nbsp;the&nbsp;value&nbsp;at&nbsp;(max_steps&nbsp;ts)&nbsp;+&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence"><span class="id" type="section">Convergence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;valid&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;simplify,&nbsp;let&nbsp;f&nbsp;denote&nbsp;the&nbsp;RTA&nbsp;procedure.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<span class="id" type="var">k</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <span class="id" type="definition">iter</span> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;the&nbsp;iteration&nbsp;is&nbsp;applied&nbsp;directly&nbsp;to&nbsp;a&nbsp;list&nbsp;of&nbsp;tasks&nbsp;and&nbsp;response-times,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;define&nbsp;a&nbsp;corresponding&nbsp;relation&nbsp;"&lt;="&nbsp;over&nbsp;those&nbsp;lists.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;'all_le'&nbsp;be&nbsp;a&nbsp;binary&nbsp;relation&nbsp;over&nbsp;lists&nbsp;of&nbsp;tasks/response-time&nbsp;bounds.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;states&nbsp;that&nbsp;every&nbsp;element&nbsp;of&nbsp;list&nbsp;l1&nbsp;has&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;R&nbsp;that&nbsp;is&nbsp;less<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;or&nbsp;equal&nbsp;to&nbsp;the&nbsp;corresponding&nbsp;response-time&nbsp;bound&nbsp;R'&nbsp;in&nbsp;list&nbsp;l2&nbsp;(point-wise).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;addition,&nbsp;the&nbsp;relation&nbsp;states&nbsp;that&nbsp;the&nbsp;tasks&nbsp;of&nbsp;both&nbsp;lists&nbsp;are&nbsp;unchanged.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> := <span class="id" type="keyword">fun</span> (<span class="id" type="var">l1</span> <span class="id" type="var">l2</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> <span class="id" type="notation">==</span> <span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">all</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">p</span> =&gt; <span class="id" type="notation">(</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="bertogna_edf_comp.html#p"><span class="id" type="variable">p</span></a>)<span class="id" type="notation">)</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">(</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="bertogna_edf_comp.html#p"><span class="id" type="variable">p</span></a>)<span class="id" type="notation">)</span>) (<span class="id" type="definition">zip</span> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Similarly,&nbsp;we&nbsp;define&nbsp;a&nbsp;strict&nbsp;version&nbsp;of&nbsp;'all_le'&nbsp;called&nbsp;'one_lt',&nbsp;which&nbsp;states&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there&nbsp;exists&nbsp;at&nbsp;least&nbsp;one&nbsp;element&nbsp;whose&nbsp;response-time&nbsp;bound&nbsp;increases.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.one_lt"><span class="id" type="variable">one_lt</span></a> := <span class="id" type="keyword">fun</span> (<span class="id" type="var">l1</span> <span class="id" type="var">l2</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> <span class="id" type="notation">==</span> <span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">has</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">p</span> =&gt; <span class="id" type="notation">(</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="bertogna_edf_comp.html#p"><span class="id" type="variable">p</span></a>)<span class="id" type="notation">)</span> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="bertogna_edf_comp.html#p"><span class="id" type="variable">p</span></a>)<span class="id" type="notation">)</span>) (<span class="id" type="definition">zip</span> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;some&nbsp;basic&nbsp;properties&nbsp;about&nbsp;the&nbsp;relation&nbsp;all_le.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties"><span class="id" type="section">RelationProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;relation&nbsp;is&nbsp;reflexive,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.all_le_reflexive"><span class="id" type="lemma">all_le_reflexive</span></a> : <span class="id" type="definition">reflexive</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;transitive.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.all_le_transitive"><span class="id" type="lemma">all_le_transitive</span></a>: <span class="id" type="definition">transitive</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;At&nbsp;any&nbsp;step&nbsp;of&nbsp;the&nbsp;iteration,&nbsp;the&nbsp;corresponding&nbsp;list<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;larger&nbsp;than&nbsp;or&nbsp;equal&nbsp;to&nbsp;the&nbsp;initial&nbsp;state.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_minimum"><span class="id" type="lemma">bertogna_edf_comp_iteration_preserves_minimum</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">step</span>, <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>) (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#step"><span class="id" type="variable">step</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;As&nbsp;a&nbsp;last&nbsp;step,&nbsp;we&nbsp;show&nbsp;that&nbsp;edf_rta_iteration&nbsp;preserves&nbsp;order,&nbsp;i.e.,&nbsp;for&nbsp;any<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;l1&nbsp;no&nbsp;smaller&nbsp;than&nbsp;the&nbsp;initial&nbsp;state,&nbsp;and&nbsp;list&nbsp;l2&nbsp;such&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l1&nbsp;&lt;=&nbsp;l2,&nbsp;we&nbsp;have&nbsp;(edf_rta_iteration&nbsp;l1)&nbsp;&lt;=&nbsp;(edf_rta_iteration&nbsp;l2).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_order"><span class="id" type="lemma">bertogna_edf_comp_iteration_preserves_order</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">l1</span> <span class="id" type="var">l2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state"><span class="id" type="variable">initial_state</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>) <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> <a class="idref" href="bertogna_edf_comp.html#l1"><span class="id" type="variable">l1</span></a>) (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration"><span class="id" type="definition">edf_rta_iteration</span></a> <a class="idref" href="bertogna_edf_comp.html#l2"><span class="id" type="variable">l2</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;It&nbsp;follows&nbsp;from&nbsp;the&nbsp;properties&nbsp;above&nbsp;that&nbsp;the&nbsp;iteration&nbsp;is&nbsp;monotonically&nbsp;increasing.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_iteration_monotonic"><span class="id" type="lemma">bertogna_edf_comp_iteration_monotonic</span></a>: <span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>, <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le"><span class="id" type="variable">all_le</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a>) (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties"><span class="id" type="section">RelationProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Knowing&nbsp;that&nbsp;the&nbsp;iteration&nbsp;is&nbsp;monotonically&nbsp;increasing&nbsp;(with&nbsp;respect&nbsp;to&nbsp;all_le),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;RTA&nbsp;procedure&nbsp;converges&nbsp;to&nbsp;a&nbsp;fixed&nbsp;point.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;note&nbsp;that&nbsp;when&nbsp;there&nbsp;are&nbsp;no&nbsp;tasks,&nbsp;the&nbsp;iteration&nbsp;trivially&nbsp;converges.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_with_no_tasks"><span class="id" type="lemma">bertogna_edf_comp_f_converges_with_no_tasks</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">size</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0 -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">).+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Otherwise,&nbsp;if&nbsp;the&nbsp;iteration&nbsp;reached&nbsp;a&nbsp;fixed&nbsp;point&nbsp;before&nbsp;(max_steps&nbsp;ts),&nbsp;then<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;value&nbsp;at&nbsp;(max_steps&nbsp;ts)&nbsp;is&nbsp;still&nbsp;at&nbsp;a&nbsp;fixed&nbsp;point.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_early"><span class="id" type="lemma">bertogna_edf_comp_f_converges_early</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">k</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">).+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Else,&nbsp;we&nbsp;derive&nbsp;a&nbsp;contradiction.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;there&nbsp;are&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_at_least_one_task"><span class="id" type="variable">H_at_least_one_task</span></a>: <span class="id" type="definition">size</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;iteration&nbsp;continued&nbsp;to&nbsp;diverge.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_keeps_diverging"><span class="id" type="variable">H_keeps_diverging</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;the&nbsp;iteration&nbsp;is&nbsp;monotonically&nbsp;increasing,&nbsp;it&nbsp;must&nbsp;be<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strictly&nbsp;increasing.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_f_increases"><span class="id" type="lemma">bertogna_edf_comp_f_increases</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.one_lt"><span class="id" type="variable">one_lt</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a>) (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;end,&nbsp;each&nbsp;response-time&nbsp;bound&nbsp;is&nbsp;so&nbsp;high&nbsp;that&nbsp;the&nbsp;sum<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;all&nbsp;response-time&nbsp;bounds&nbsp;exceeds&nbsp;the&nbsp;sum&nbsp;of&nbsp;all&nbsp;deadlines.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Contradiction!&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.bertogna_edf_comp_rt_grows_too_much"><span class="id" type="lemma">bertogna_edf_comp_rt_grows_too_much</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">sum_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">((</span></a><span class="id" type="var">tsk</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">,</span></a> <span class="id" type="var">R</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">&lt;-</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">(</span></a><span class="id" type="var">R</span> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <span class="id" type="var">tsk</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">)</span></a> <span class="id" type="notation">+</span> 1 <span class="id" type="notation">&gt;</span> <a class="idref" href="bertogna_edf_comp.html#k"><span class="id" type="variable">k</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above,&nbsp;we&nbsp;prove&nbsp;that&nbsp;edf_rta_iteration&nbsp;reaches&nbsp;a&nbsp;fixed&nbsp;point<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;after&nbsp;(max_steps&nbsp;ts)&nbsp;iterations,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_converges_helper"><span class="id" type="lemma">edf_claimed_bounds_converges_helper</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">rt_bounds</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps"><span class="id" type="variable">max_steps</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">).+1</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Either&nbsp;the&nbsp;task&nbsp;set&nbsp;is&nbsp;empty&nbsp;or&nbsp;not.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Either&nbsp;f&nbsp;converges&nbsp;by&nbsp;the&nbsp;deadline&nbsp;or&nbsp;not.&nbsp;*)</span><br/>
-&nbsp;If&nbsp;not,&nbsp;then&nbsp;we&nbsp;reach&nbsp;a&nbsp;contradiction&nbsp;*)</span><br/>
-&nbsp;Show&nbsp;that&nbsp;the&nbsp;sum&nbsp;is&nbsp;less&nbsp;than&nbsp;the&nbsp;sum&nbsp;of&nbsp;all&nbsp;deadlines.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;which&nbsp;in&nbsp;turn&nbsp;implies&nbsp;that&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;is&nbsp;the&nbsp;fixed<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;from&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;equation.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationEDF.edf_claimed_bounds_converges"><span class="id" type="lemma">edf_claimed_bounds_converges</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span> <span class="id" type="var">rt_bounds</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> (<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.I"><span class="id" type="variable">I</span></a> <a class="idref" href="bertogna_edf_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a>) <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence"><span class="id" type="section">Convergence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;task&nbsp;set&nbsp;ts.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;task&nbsp;set&nbsp;has&nbsp;no&nbsp;duplicates,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_ts_is_a_set"><span class="id" type="variable">H_ts_is_a_set</span></a>: <span class="id" type="definition">uniq</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...all&nbsp;tasks&nbsp;have&nbsp;valid&nbsp;parameters,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...restricted&nbsp;deadlines,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_restricted_deadlines"><span class="id" type="variable">H_restricted_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;consider&nbsp;any&nbsp;arrival&nbsp;sequence&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...all&nbsp;jobs&nbsp;come&nbsp;from&nbsp;task&nbsp;set&nbsp;ts,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_all_jobs_from_taskset"><span class="id" type="variable">H_all_jobs_from_taskset</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...they&nbsp;have&nbsp;valid&nbsp;parameters,...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_valid_job_parameters"><span class="id" type="variable">H_valid_job_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;satisfy&nbsp;the&nbsp;sporadic&nbsp;task&nbsp;model.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;consider&nbsp;any&nbsp;platform&nbsp;with&nbsp;at&nbsp;least&nbsp;one&nbsp;CPU&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_at_least_one_cpu"><span class="id" type="variable">H_at_least_one_cpu</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...jobs&nbsp;only&nbsp;execute&nbsp;after&nbsp;they&nbsp;arrived&nbsp;and&nbsp;no&nbsp;longer<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs,...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;order&nbsp;not&nbsp;to&nbsp;overcount&nbsp;job&nbsp;interference,&nbsp;we&nbsp;assume&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jobs&nbsp;of&nbsp;the&nbsp;same&nbsp;task&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Our&nbsp;proof&nbsp;requires&nbsp;a&nbsp;definition&nbsp;of&nbsp;interference&nbsp;based&nbsp;on<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;individual&nbsp;contributions&nbsp;of&nbsp;each&nbsp;job:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I_total&nbsp;=&nbsp;I_j1&nbsp;+&nbsp;I_j2&nbsp;+&nbsp;...<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;under&nbsp;EDF,&nbsp;this&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;task&nbsp;precedence<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constraints.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_no_intra_task_parallelism"><span class="id" type="variable">H_no_intra_task_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel"><span class="id" type="definition">jobs_of_same_task_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;schedule&nbsp;satisfies&nbsp;the&nbsp;global&nbsp;scheduling<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invariant&nbsp;with&nbsp;EDF&nbsp;priority,&nbsp;i.e.,&nbsp;if&nbsp;any&nbsp;job&nbsp;of&nbsp;tsk&nbsp;is<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backlogged,&nbsp;every&nbsp;processor&nbsp;must&nbsp;be&nbsp;busy&nbsp;with&nbsp;jobs&nbsp;with<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;greater&nbsp;absolute&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@<a class="idref" href="priority.html#Priority.EDF"><span class="id" type="definition">EDF</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Job"><span class="id" type="variable">Job</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a>. <span class="comment">(*&nbsp;TODO:&nbsp;implicit&nbsp;params&nbsp;seems&nbsp;broken&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_global_scheduling_invariant"><span class="id" type="variable">H_global_scheduling_invariant</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds"><span class="id" type="definition">JLFP_JLDP_scheduling_invariant_holds</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.no_deadline_missed_by_task"><span class="id" type="definition">no_deadline_missed_by_task</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationEDF.no_deadline_missed_by_job"><span class="id" type="definition">no_deadline_missed_by_job</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;theorem,&nbsp;we&nbsp;prove&nbsp;that&nbsp;any&nbsp;response-time&nbsp;bound&nbsp;contained<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;edf_claimed_bounds&nbsp;is&nbsp;safe.&nbsp;The&nbsp;proof&nbsp;follows&nbsp;by&nbsp;direct&nbsp;application&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;main&nbsp;Theorem&nbsp;from&nbsp;bertogna_edf_theory.v.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationEDF.edf_analysis_yields_response_time_bounds"><span class="id" type="lemma">edf_analysis_yields_response_time_bounds</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:bool_scope:x_'\In'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:bool_scope:x_'\In'_x"><span class="id" type="notation">In</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds"><span class="id" type="definition">edf_claimed_bounds</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> : <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_comp.html#R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Therefore,&nbsp;if&nbsp;the&nbsp;schedulability&nbsp;test&nbsp;suceeds,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationEDF.Analysis.MainProof.H_test_succeeds"><span class="id" type="variable">H_test_succeeds</span></a>: <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_schedulable"><span class="id" type="definition">edf_schedulable</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*...&nbsp;no&nbsp;task&nbsp;misses&nbsp;its&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationEDF.taskset_schedulable_by_edf_rta"><span class="id" type="lemma">taskset_schedulable_by_edf_rta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_task"><span class="id" type="definition">no_deadline_missed_by_task</span></a> <a class="idref" href="bertogna_edf_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;For&nbsp;completeness,&nbsp;since&nbsp;all&nbsp;jobs&nbsp;of&nbsp;the&nbsp;arrival&nbsp;sequence<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;spawned&nbsp;by&nbsp;the&nbsp;task&nbsp;set,&nbsp;we&nbsp;conclude&nbsp;that&nbsp;no&nbsp;job&nbsp;misses<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;its&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationEDF.jobs_schedulable_by_edf_rta"><span class="id" type="lemma">jobs_schedulable_by_edf_rta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_job"><span class="id" type="definition">no_deadline_missed_by_job</span></a> <a class="idref" href="bertogna_edf_comp.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis"><span class="id" type="section">Analysis</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_comp.html#"><span class="id" type="module">ResponseTimeIterationEDF</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bertogna_edf_theory.html b/bertogna_edf_theory.html
deleted file mode 100644
index 4ab568b76..000000000
--- a/bertogna_edf_theory.html
+++ /dev/null
@@ -1,415 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>bertogna_edf_theory</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library bertogna_edf_theory</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="platform.html#"><span class="id" type="library">platform</span></a> <a class="idref" href="interference.html#"><span class="id" type="library">interference</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="workload_bound.html#"><span class="id" type="library">workload_bound</span></a> <a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#"><span class="id" type="library">bertogna_fp_theory</span></a> <a class="idref" href="interference_bound_edf.html#"><span class="id" type="library">interference_bound_edf</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">div</span> <span class="id" type="library">path</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="ResponseTimeAnalysisEDF"><span class="id" type="module">ResponseTimeAnalysisEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">Workload</span> <span class="id" type="var">Schedulability</span> <span class="id" type="var">ResponseTime</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">Priority</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">WorkloadBound</span> <span class="id" type="var">EDFSpecificBound</span> <span class="id" type="var">ResponseTimeAnalysisFP</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;section,&nbsp;we&nbsp;define&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interference&nbsp;bound&nbsp;for&nbsp;EDF&nbsp;scheduling.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF"><span class="id" type="section">TotalInterferenceBoundEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk&nbsp;be&nbsp;the&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>)%<span class="id" type="var">type</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;known&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;each&nbsp;interfering&nbsp;task&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev"><span class="id" type="variable">R_prev</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;an&nbsp;interval&nbsp;length&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask"><span class="id" type="section">PerTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other"><span class="id" type="variable">tsk_other</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other"><span class="id" type="variable">R_other</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;By&nbsp;combining&nbsp;Bertogna's&nbsp;interference&nbsp;bound&nbsp;for&nbsp;a&nbsp;work-conserving<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scheduler&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound"><span class="id" type="variable">basic_interference_bound</span></a> := <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.interference_bound_fp"><span class="id" type="definition">interference_bound_fp</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="keyword">delta</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;with&nbsp;and&nbsp;EDF-specific&nbsp;interference&nbsp;bound,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound"><span class="id" type="variable">edf_specific_bound</span></a> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.edf_specific_interference_bound"><span class="id" type="definition">edf_specific_interference_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other"><span class="id" type="variable">R_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Bertogna&nbsp;and&nbsp;Cirinei&nbsp;define&nbsp;the&nbsp;following&nbsp;interference&nbsp;bound<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;under&nbsp;EDF&nbsp;scheduling.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeAnalysisEDF.interference_bound_edf"><span class="id" type="definition">interference_bound_edf</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound"><span class="id" type="variable">basic_interference_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound"><span class="id" type="variable">edf_specific_bound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask"><span class="id" type="section">PerTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks"><span class="id" type="section">AllTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> := <a class="idref" href="interference.html#Interference.is_interfering_task_jlfp"><span class="id" type="definition">is_interfering_task_jlfp</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;tsk&nbsp;is&nbsp;bounded&nbsp;by&nbsp;the&nbsp;sum<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;individual&nbsp;task&nbsp;interferences.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeAnalysisEDF.total_interference_bound_edf"><span class="id" type="definition">total_interference_bound_edf</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">sum_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">((</span></a><span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">&lt;-</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev"><span class="id" type="variable">R_prev</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">|</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> <span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf"><span class="id" type="definition">interference_bound_edf</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">tsk_other</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_other</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks"><span class="id" type="section">AllTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF"><span class="id" type="section">TotalInterferenceBoundEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;that&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;RTA&nbsp;yields<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;safe&nbsp;response-time&nbsp;bounds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;any&nbsp;job&nbsp;arrival&nbsp;sequence...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;in&nbsp;which&nbsp;jobs&nbsp;arrive&nbsp;sporadically&nbsp;and&nbsp;have&nbsp;valid&nbsp;parameters.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_job_parameters"><span class="id" type="variable">H_valid_job_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;schedule&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;before&nbsp;their&nbsp;arrival&nbsp;times&nbsp;nor&nbsp;longer<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also&nbsp;assume&nbsp;that&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel&nbsp;and&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there&nbsp;exists&nbsp;at&nbsp;least&nbsp;one&nbsp;processor.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_at_least_one_cpu"><span class="id" type="variable">H_at_least_one_cpu</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;order&nbsp;not&nbsp;to&nbsp;overcount&nbsp;job&nbsp;interference,&nbsp;we&nbsp;assume&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jobs&nbsp;of&nbsp;the&nbsp;same&nbsp;task&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;under&nbsp;EDF,&nbsp;this&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;task&nbsp;precedence<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constraints.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;required&nbsp;because&nbsp;our&nbsp;proof&nbsp;uses&nbsp;a&nbsp;definition&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interference&nbsp;based&nbsp;on&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;individual&nbsp;contributions<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;each&nbsp;job:&nbsp;I_total&nbsp;=&nbsp;I_j1&nbsp;+&nbsp;I_j2&nbsp;+&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_intra_task_parallelism"><span class="id" type="variable">H_no_intra_task_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel"><span class="id" type="definition">jobs_of_same_task_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;task&nbsp;set&nbsp;where&nbsp;all&nbsp;tasks&nbsp;have&nbsp;valid<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;and&nbsp;restricted&nbsp;deadlines.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.all_jobs_from_taskset"><span class="id" type="variable">all_jobs_from_taskset</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_restricted_deadlines"><span class="id" type="variable">H_restricted_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.no_deadline_is_missed_by_tsk"><span class="id" type="variable">no_deadline_is_missed_by_tsk</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by"><span class="id" type="variable">response_time_bounded_by</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;known&nbsp;response-time&nbsp;bound&nbsp;R&nbsp;is&nbsp;known...&nbsp;&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>)%<span class="id" type="var">type</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...for&nbsp;any&nbsp;task&nbsp;in&nbsp;the&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_rt_bounds_contains_all_tasks"><span class="id" type="variable">H_rt_bounds_contains_all_tasks</span></a>: <span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;assume&nbsp;that&nbsp;R&nbsp;is&nbsp;a&nbsp;fixed-point&nbsp;of&nbsp;the&nbsp;response-time&nbsp;recurrence,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.I"><span class="id" type="variable">I</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.total_interference_bound_edf"><span class="id" type="definition">total_interference_bound_edf</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <span class="id" type="keyword">delta</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_response_time_is_fixed_point"><span class="id" type="variable">H_response_time_is_fixed_point</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.I"><span class="id" type="variable">I</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#R"><span class="id" type="variable">R</span></a>) <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;and&nbsp;R&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;the&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_tasks_miss_no_deadlines"><span class="id" type="variable">H_tasks_miss_no_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk_other</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt; <a class="idref" href="bertogna_edf_theory.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> := @<a class="idref" href="priority.html#Priority.EDF"><span class="id" type="definition">EDF</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>. <span class="comment">(*&nbsp;TODO:&nbsp;implicit&nbsp;params&nbsp;broken&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;schedule&nbsp;satisfies&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;EDF,&nbsp;i.e.,&nbsp;if&nbsp;any&nbsp;job&nbsp;of&nbsp;tsk&nbsp;is&nbsp;backlogged,&nbsp;every&nbsp;processor<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;must&nbsp;be&nbsp;busy&nbsp;with&nbsp;jobs&nbsp;with&nbsp;no&nbsp;larger&nbsp;absolute&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_global_scheduling_invariant"><span class="id" type="variable">H_global_scheduling_invariant</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds"><span class="id" type="definition">JLFP_JLDP_scheduling_invariant_holds</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;task&nbsp;set&nbsp;has&nbsp;no&nbsp;duplicates.&nbsp;Otherwise,&nbsp;counting<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;number&nbsp;of&nbsp;tasks&nbsp;that&nbsp;have&nbsp;some&nbsp;property&nbsp;does&nbsp;not&nbsp;make&nbsp;sense<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(for&nbsp;example,&nbsp;for&nbsp;stating&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant&nbsp;as<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;number&nbsp;of&nbsp;scheduled&nbsp;interfering&nbsp;tasks&nbsp;=&nbsp;number&nbsp;of&nbsp;cpus).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.H_ts_is_a_set"><span class="id" type="variable">H_ts_is_a_set</span></a> : <span class="id" type="definition">uniq</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;order&nbsp;to&nbsp;prove&nbsp;that&nbsp;R&nbsp;is&nbsp;a&nbsp;response-time&nbsp;bound,&nbsp;we&nbsp;first&nbsp;present&nbsp;some&nbsp;lemmas.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas"><span class="id" type="section">Lemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(tsk,&nbsp;R)&nbsp;be&nbsp;any&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed,&nbsp;with&nbsp;its&nbsp;response-time&nbsp;bound&nbsp;R.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_tsk_R_in_rt_bounds"><span class="id" type="variable">H_tsk_R_in_rt_bounds</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;job&nbsp;j&nbsp;of&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_job_of_tsk"><span class="id" type="variable">H_job_of_tsk</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;job&nbsp;j&nbsp;did&nbsp;not&nbsp;complete&nbsp;on&nbsp;time,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_j_not_completed"><span class="id" type="variable">H_j_not_completed</span></a>: <span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;and&nbsp;that&nbsp;it&nbsp;is&nbsp;the&nbsp;first&nbsp;job&nbsp;not&nbsp;to&nbsp;satisfy&nbsp;its&nbsp;response-time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_all_previous_jobs_completed_on_time"><span class="id" type="variable">H_all_previous_jobs_completed_on_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j_other</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) <span class="id" type="var">tsk_other</span> <span class="id" type="var">R_other</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#j_other"><span class="id" type="variable">j_other</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#j_other"><span class="id" type="variable">j_other</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#j_other"><span class="id" type="variable">j_other</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;call&nbsp;x&nbsp;the&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;due&nbsp;to&nbsp;tsk_other,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;and&nbsp;X&nbsp;the&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;due&nbsp;to&nbsp;any&nbsp;task.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> := <a class="idref" href="interference.html#Interference.total_interference"><span class="id" type="definition">total_interference</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Recall&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;workload&nbsp;bound&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">R_other</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.W"><span class="id" type="definition">W</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*...&nbsp;and&nbsp;the&nbsp;EDF-specific&nbsp;bound,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound"><span class="id" type="variable">edf_specific_bound</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">R_other</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.edf_specific_interference_bound"><span class="id" type="definition">edf_specific_interference_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;which&nbsp;combined&nbsp;form&nbsp;the&nbsp;interference&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound"><span class="id" type="variable">interference_bound</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">R_other</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf"><span class="id" type="definition">interference_bound_edf</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;let&nbsp;ts_interf&nbsp;be&nbsp;the&nbsp;subset&nbsp;of&nbsp;tasks&nbsp;that&nbsp;interfere&nbsp;with&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a> := <span class="id" type="notation">[</span><span class="id" type="notation">seq</span> <span class="id" type="var">tsk_other</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">|</span> <a class="idref" href="interference.html#Interference.is_interfering_task_jlfp"><span class="id" type="definition">is_interfering_task_jlfp</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="var">tsk_other</span><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks"><span class="id" type="section">LemmasAboutInterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(tsk_other,&nbsp;R_other)&nbsp;be&nbsp;any&nbsp;pair&nbsp;of&nbsp;higher-priority&nbsp;task&nbsp;and<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bound&nbsp;computed&nbsp;in&nbsp;previous&nbsp;iterations.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other"><span class="id" type="variable">H_response_time_of_tsk_other</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Note&nbsp;that&nbsp;tsk_other&nbsp;is&nbsp;in&nbsp;task&nbsp;set&nbsp;ts&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_tsk_other_in_ts"><span class="id" type="lemma">bertogna_edf_tsk_other_in_ts</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;R_other&nbsp;is&nbsp;larger&nbsp;than&nbsp;the&nbsp;cost&nbsp;of&nbsp;tsk_other.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_R_other_ge_cost"><span class="id" type="lemma">bertogna_edf_R_other_ge_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;tsk_other&nbsp;cannot&nbsp;interfere&nbsp;more&nbsp;than&nbsp;it&nbsp;executes,&nbsp;we&nbsp;show&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;interference&nbsp;caused&nbsp;by&nbsp;tsk_other&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;workload&nbsp;bound&nbsp;W.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_workload_bounds_interference"><span class="id" type="lemma">bertogna_edf_workload_bounds_interference</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Recall&nbsp;that&nbsp;the&nbsp;edf-specific&nbsp;interference&nbsp;bound&nbsp;also&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_specific_bound_holds"><span class="id" type="lemma">bertogna_edf_specific_bound_holds</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound"><span class="id" type="variable">edf_specific_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks"><span class="id" type="section">LemmasAboutInterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next&nbsp;we&nbsp;prove&nbsp;some&nbsp;lemmas&nbsp;that&nbsp;help&nbsp;to&nbsp;derive&nbsp;a&nbsp;contradiction.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;1)&nbsp;Since&nbsp;job&nbsp;j&nbsp;did&nbsp;not&nbsp;complete&nbsp;by&nbsp;its&nbsp;response&nbsp;time&nbsp;bound,&nbsp;it&nbsp;follows&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;total&nbsp;interference&nbsp;X&nbsp;&gt;=&nbsp;R&nbsp;-&nbsp;e_k&nbsp;+&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_too_much_interference"><span class="id" type="lemma">bertogna_edf_too_much_interference</span></a> : <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;j&nbsp;has&nbsp;not&nbsp;completed,&nbsp;recall&nbsp;the&nbsp;time&nbsp;when&nbsp;it&nbsp;is&nbsp;not<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;executing&nbsp;is&nbsp;the&nbsp;total&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;2)&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;interference&nbsp;of&nbsp;each&nbsp;task&nbsp;is&nbsp;equal<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;total&nbsp;interference&nbsp;multiplied&nbsp;by&nbsp;the&nbsp;number&nbsp;of&nbsp;processors.&nbsp;This<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;holds&nbsp;because&nbsp;interference&nbsp;only&nbsp;occurs&nbsp;when&nbsp;all&nbsp;processors&nbsp;are&nbsp;busy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_all_cpus_busy"><span class="id" type="lemma">bertogna_edf_all_cpus_busy</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(cardGE&nbsp;delta)&nbsp;be&nbsp;the&nbsp;number&nbsp;of&nbsp;interfering&nbsp;tasks&nbsp;whose&nbsp;interference<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;larger&nbsp;than&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> (<span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <span class="id" type="definition">count</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">i</span> =&gt; <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_edf_theory.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span>) <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;3)&nbsp;If&nbsp;there&nbsp;is&nbsp;at&nbsp;least&nbsp;one&nbsp;of&nbsp;such&nbsp;tasks&nbsp;(e.g.,&nbsp;cardGE&nbsp;&gt;&nbsp;0),&nbsp;then&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cumulative&nbsp;interference&nbsp;caused&nbsp;by&nbsp;the&nbsp;complementary&nbsp;set&nbsp;of&nbsp;interfering<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks&nbsp;fills&nbsp;at&nbsp;least&nbsp;(num_cpus&nbsp;-&nbsp;cardGE)&nbsp;processors.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_helper_lemma"><span class="id" type="lemma">bertogna_edf_helper_lemma</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="keyword">delta</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> <span class="id" type="keyword">delta</span> <span class="id" type="notation">&gt;</span> 0 -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a> <span class="id" type="notation">|</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="keyword">delta</span><span class="id" type="notation">)</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <span class="id" type="notation">(</span><a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> <span class="id" type="keyword">delta</span><span class="id" type="notation">)</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;4)&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that,&nbsp;for&nbsp;any&nbsp;interval&nbsp;delta,&nbsp;if&nbsp;the&nbsp;sum&nbsp;of&nbsp;per-task<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interference&nbsp;exceeds&nbsp;delta&nbsp;*&nbsp;num_cpus,&nbsp;the&nbsp;same&nbsp;applies&nbsp;for&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;of&nbsp;the&nbsp;minimum&nbsp;between&nbsp;the&nbsp;interference&nbsp;and&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_minimum_exceeds_interference"><span class="id" type="lemma">bertogna_edf_minimum_exceeds_interference</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="keyword">delta</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span>) <span class="id" type="keyword">delta</span> <span class="id" type="notation">&gt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;1:&nbsp;cardGE&nbsp;=&nbsp;0&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;2:&nbsp;cardGE&nbsp;&gt;=&nbsp;num_cpus&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;3:&nbsp;cardGE&nbsp;&lt;&nbsp;num_cpus&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;5)&nbsp;Now,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;Bertogna's&nbsp;interference&nbsp;bound<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;enough&nbsp;to&nbsp;cover&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;"minimum"&nbsp;term&nbsp;over<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;tasks&nbsp;(artifact&nbsp;of&nbsp;the&nbsp;proof&nbsp;by&nbsp;contradiction).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_sum_exceeds_total_interference"><span class="id" type="lemma">bertogna_edf_sum_exceeds_total_interference</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">sum_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">((</span></a><span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">&lt;-</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">|</span></a> <a class="idref" href="interference.html#Interference.is_interfering_task_jlfp"><span class="id" type="definition">is_interfering_task_jlfp</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_other</span>) (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1) <span class="id" type="notation">&gt;</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.I"><span class="id" type="variable">I</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;6)&nbsp;After&nbsp;concluding&nbsp;that&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;minimum&nbsp;exceeds&nbsp;(R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;prove&nbsp;that&nbsp;there&nbsp;exists&nbsp;a&nbsp;tuple&nbsp;(tsk_k,&nbsp;R_k)&nbsp;such&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;(x_k,&nbsp;R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1)&nbsp;&gt;&nbsp;min&nbsp;(W_k,&nbsp;edf_bound,&nbsp;R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisEDF.bertogna_edf_exists_task_that_exceeds_bound"><span class="id" type="lemma">bertogna_edf_exists_task_that_exceeds_bound</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">tsk_other</span> <span class="id" type="var">R_other</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">(</span></a><span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a>) (<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1) <span class="id" type="notation">&gt;</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound"><span class="id" type="variable">interference_bound</span></a> <a class="idref" href="bertogna_edf_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_edf_theory.html#R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas"><span class="id" type="section">Lemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(tsk,&nbsp;R)&nbsp;be&nbsp;any&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed,&nbsp;with&nbsp;its&nbsp;response-time&nbsp;bound&nbsp;R.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.H_tsk_R_in_rt_bounds"><span class="id" type="variable">H_tsk_R_in_rt_bounds</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above,&nbsp;we&nbsp;prove&nbsp;that&nbsp;R&nbsp;bounds&nbsp;the&nbsp;response&nbsp;time&nbsp;of&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeAnalysisEDF.bertogna_cirinei_response_time_bound_edf"><span class="id" type="lemma">bertogna_cirinei_response_time_bound_edf</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by"><span class="id" type="variable">response_time_bounded_by</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R"><span class="id" type="variable">R</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;rewrite&nbsp;the&nbsp;claim&nbsp;in&nbsp;terms&nbsp;of&nbsp;the&nbsp;*absolute*&nbsp;response-time&nbsp;bound&nbsp;(arrival&nbsp;+&nbsp;R)&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;we&nbsp;apply&nbsp;strong&nbsp;induction&nbsp;on&nbsp;the&nbsp;absolute&nbsp;response-time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;let's&nbsp;simplify&nbsp;the&nbsp;induction&nbsp;hypothesis.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;proof&nbsp;follows&nbsp;by&nbsp;contradiction.&nbsp;Assume&nbsp;that&nbsp;job&nbsp;j&nbsp;does&nbsp;not&nbsp;complete&nbsp;by&nbsp;its<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bound.&nbsp;By&nbsp;the&nbsp;induction&nbsp;hypothesis,&nbsp;all&nbsp;jobs&nbsp;with&nbsp;absolute<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bound&nbsp;t&nbsp;&lt;&nbsp;(job_arrival&nbsp;j&nbsp;+&nbsp;R)&nbsp;have&nbsp;correct&nbsp;response-time&nbsp;bounds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;derive&nbsp;a&nbsp;contradiction&nbsp;using&nbsp;the&nbsp;previous&nbsp;lemmas.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_edf_theory.html#"><span class="id" type="module">ResponseTimeAnalysisEDF</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bertogna_fp_comp.html b/bertogna_fp_comp.html
deleted file mode 100644
index 0171e6b0b..000000000
--- a/bertogna_fp_comp.html
+++ /dev/null
@@ -1,423 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>bertogna_fp_comp</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library bertogna_fp_comp</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="bertogna_fp_theory.html#"><span class="id" type="library">bertogna_fp_theory</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">div</span> <span class="id" type="library">path</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#"><span class="id" type="library">workload_bound</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="ResponseTimeIterationFP"><span class="id" type="module">ResponseTimeIterationFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">ResponseTimeAnalysisFP</span> <span class="id" type="var">WorkloadBound</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;define&nbsp;the&nbsp;algorithm&nbsp;of&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;analysis&nbsp;for&nbsp;FP&nbsp;scheduling.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis"><span class="id" type="section">Analysis</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;During&nbsp;the&nbsp;iterations&nbsp;of&nbsp;the&nbsp;algorithm,&nbsp;we&nbsp;pass&nbsp;around&nbsp;pairs<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;tasks&nbsp;and&nbsp;computed&nbsp;response-time&nbsp;bounds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationFP.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>)%<span class="id" type="var">type</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;platform&nbsp;with&nbsp;num_cpus&nbsp;processors,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;and&nbsp;priorities&nbsp;based&nbsp;on&nbsp;an&nbsp;FP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next&nbsp;we&nbsp;define&nbsp;the&nbsp;fixed-point&nbsp;iteration&nbsp;for&nbsp;computing<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bertogna's&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;a&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;given&nbsp;a&nbsp;sequence&nbsp;of&nbsp;pairs&nbsp;R_prev&nbsp;=&nbsp;&lt;...,&nbsp;(tsk_hp,&nbsp;R_hp)&gt;&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bounds&nbsp;for&nbsp;the&nbsp;higher-priority&nbsp;tasks,&nbsp;we&nbsp;define&nbsp;an<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iteration&nbsp;that&nbsp;computes&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;the&nbsp;current&nbsp;task:<br/>
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R_tsk&nbsp;(0)&nbsp;=&nbsp;task_cost&nbsp;tsk<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R_tsk&nbsp;(step&nbsp;+&nbsp;1)&nbsp;=&nbsp;&nbsp;f&nbsp;(R&nbsp;step),<br/>
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;f&nbsp;is&nbsp;the&nbsp;response-time&nbsp;recurrence,&nbsp;step&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;iterations,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;R_tsk&nbsp;(0)&nbsp;is&nbsp;the&nbsp;initial&nbsp;state.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">R_prev</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>) (<span class="id" type="var">step</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">iter</span> <a class="idref" href="bertogna_fp_comp.html#step"><span class="id" type="variable">step</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">fun</span> <span class="id" type="var">t</span> =&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp"><span class="id" type="definition">total_interference_bound_fp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#R_prev"><span class="id" type="variable">R_prev</span></a> <a class="idref" href="bertogna_fp_comp.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;ensure&nbsp;that&nbsp;the&nbsp;iteration&nbsp;converges,&nbsp;we&nbsp;will&nbsp;apply&nbsp;per_task_rta<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;"sufficient"&nbsp;number&nbsp;of&nbsp;times:&nbsp;task_deadline&nbsp;tsk&nbsp;-&nbsp;task_cost&nbsp;tsk&nbsp;+&nbsp;1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;corresponds&nbsp;to&nbsp;the&nbsp;time&nbsp;complexity&nbsp;of&nbsp;the&nbsp;iteration.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) := <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next&nbsp;we&nbsp;compute&nbsp;the&nbsp;response-time&nbsp;bounds&nbsp;for&nbsp;the&nbsp;entire&nbsp;task&nbsp;set.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;high-priority&nbsp;tasks&nbsp;may&nbsp;not&nbsp;be&nbsp;schedulable,&nbsp;we&nbsp;allow&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;computation&nbsp;to&nbsp;fail.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thus,&nbsp;given&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;previous&nbsp;tasks,&nbsp;we&nbsp;either<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(a)&nbsp;append&nbsp;the&nbsp;computed&nbsp;response-time&nbsp;bound&nbsp;(tsk,&nbsp;R)&nbsp;of&nbsp;the&nbsp;current&nbsp;task<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;list&nbsp;of&nbsp;pairs,&nbsp;or,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(b)&nbsp;return&nbsp;None&nbsp;if&nbsp;the&nbsp;response-time&nbsp;analysis&nbsp;failed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationFP.fp_bound_of_task"><span class="id" type="definition">fp_bound_of_task</span></a> <span class="id" type="var">hp_pairs</span> <span class="id" type="var">tsk</span> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">if</span> <a class="idref" href="bertogna_fp_comp.html#hp_pairs"><span class="id" type="variable">hp_pairs</span></a> <span class="id" type="var">is</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">rt_bounds</span> <span class="id" type="keyword">then</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">R</span> := <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="var">rt_bounds</span> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>) <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">if</span> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="keyword">then</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> (<span class="id" type="definition">rcons</span> <span class="id" type="var">rt_bounds</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;response-time&nbsp;analysis&nbsp;for&nbsp;a&nbsp;given&nbsp;task&nbsp;set&nbsp;is&nbsp;defined<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as&nbsp;a&nbsp;left-fold&nbsp;(reduce)&nbsp;based&nbsp;on&nbsp;the&nbsp;function&nbsp;above.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;either&nbsp;returns&nbsp;a&nbsp;list&nbsp;of&nbsp;task&nbsp;and&nbsp;response-time&nbsp;bounds,&nbsp;or&nbsp;None.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">foldl</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_bound_of_task"><span class="id" type="definition">fp_bound_of_task</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="notation">[::]</span>) <a class="idref" href="bertogna_fp_comp.html#ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;schedulability&nbsp;test&nbsp;simply&nbsp;checks&nbsp;if&nbsp;we&nbsp;got&nbsp;a&nbsp;list&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bounds&nbsp;(i.e.,&nbsp;if&nbsp;the&nbsp;computation&nbsp;did&nbsp;not&nbsp;fail).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeIterationFP.fp_schedulable"><span class="id" type="definition">fp_schedulable</span></a> (<span class="id" type="var">ts</span>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;section,&nbsp;we&nbsp;prove&nbsp;several&nbsp;helper&nbsp;lemmas&nbsp;about&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;of&nbsp;response-time&nbsp;bounds.&nbsp;The&nbsp;results&nbsp;seem&nbsp;trivial,&nbsp;but&nbsp;must&nbsp;be&nbsp;proven<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nonetheless&nbsp;since&nbsp;the&nbsp;list&nbsp;of&nbsp;response-time&nbsp;bounds&nbsp;is&nbsp;computed&nbsp;with<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;specific&nbsp;algorithm&nbsp;and&nbsp;there&nbsp;are&nbsp;no&nbsp;lemmas&nbsp;in&nbsp;the&nbsp;library&nbsp;for&nbsp;that.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis.SimpleLemmas"><span class="id" type="section">SimpleLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;show&nbsp;that&nbsp;R_list&nbsp;of&nbsp;the&nbsp;prefix&nbsp;is&nbsp;the&nbsp;prefix&nbsp;of&nbsp;R_list.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_rcons_prefix"><span class="id" type="lemma">fp_claimed_bounds_rcons_prefix</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">hp_bounds</span> <span class="id" type="var">tsk1</span> <span class="id" type="var">tsk2</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk1"><span class="id" type="variable">tsk1</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk2"><span class="id" type="variable">tsk2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_fp_comp.html#hp_bounds"><span class="id" type="variable">hp_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;R_list&nbsp;returns&nbsp;the&nbsp;same&nbsp;tasks&nbsp;as&nbsp;the&nbsp;original&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_rcons_task"><span class="id" type="lemma">fp_claimed_bounds_rcons_task</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">hp_bounds</span> <span class="id" type="var">tsk1</span> <span class="id" type="var">tsk2</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk1"><span class="id" type="variable">tsk1</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk2"><span class="id" type="variable">tsk2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#tsk1"><span class="id" type="variable">tsk1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk2"><span class="id" type="variable">tsk2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;response-time&nbsp;bounds&nbsp;computed&nbsp;using&nbsp;R_list&nbsp;are&nbsp;based&nbsp;on&nbsp;the&nbsp;per-task<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fixed-point&nbsp;iteration.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_rcons_response_time"><span class="id" type="lemma">fp_claimed_bounds_rcons_response_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">hp_bounds</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#hp_bounds"><span class="id" type="variable">hp_bounds</span></a> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;analysis&nbsp;suceeds,&nbsp;the&nbsp;computed&nbsp;response-time&nbsp;bounds&nbsp;are&nbsp;no&nbsp;larger<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;the&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_le_deadline"><span class="id" type="lemma">fp_claimed_bounds_le_deadline</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">rt_bounds</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;analysis&nbsp;succeeds,&nbsp;the&nbsp;computed&nbsp;response-time&nbsp;bounds&nbsp;are&nbsp;no&nbsp;smaller<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;the&nbsp;task&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_ge_cost"><span class="id" type="lemma">fp_claimed_bounds_ge_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">rt_bounds</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;list&nbsp;contains&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;every&nbsp;task&nbsp;in&nbsp;the&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_non_empty"><span class="id" type="lemma">fp_claimed_bounds_non_empty</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">ts'</span> <span class="id" type="var">rt_bounds</span> <span class="id" type="var">tsk</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#ts'"><span class="id" type="variable">ts'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">R</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Short&nbsp;lemma&nbsp;about&nbsp;unfolding&nbsp;the&nbsp;iteration&nbsp;one&nbsp;step.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.per_task_rta_fold"><span class="id" type="lemma">per_task_rta_fold</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">rt_bounds</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp"><span class="id" type="definition">total_interference_bound_fp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>)) <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>) <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#rt_bounds"><span class="id" type="variable">rt_bounds</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">).+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.SimpleLemmas"><span class="id" type="section">SimpleLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;that&nbsp;if&nbsp;the&nbsp;task&nbsp;set&nbsp;is&nbsp;sorted&nbsp;by&nbsp;priority,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;tasks&nbsp;in&nbsp;fp_claimed_bounds&nbsp;are&nbsp;interfering&nbsp;tasks.&nbsp;&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks"><span class="id" type="section">HighPriorityTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;list&nbsp;of&nbsp;previous&nbsp;tasks&nbsp;and&nbsp;a&nbsp;task&nbsp;tsk&nbsp;to&nbsp;be&nbsp;analyzed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp"><span class="id" type="variable">ts_hp</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;task&nbsp;set&nbsp;doesn't&nbsp;contain&nbsp;duplicates&nbsp;and&nbsp;is&nbsp;sorted&nbsp;by&nbsp;priority,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_a_set"><span class="id" type="variable">H_task_set_is_a_set</span></a>: <span class="id" type="definition">uniq</span> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_sorted"><span class="id" type="variable">H_task_set_is_sorted</span></a>: <span class="id" type="definition">sorted</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...the&nbsp;priority&nbsp;order&nbsp;is&nbsp;transitive,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_priority_transitive"><span class="id" type="variable">H_priority_transitive</span></a>: <span class="id" type="definition">transitive</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;that&nbsp;the&nbsp;response-time&nbsp;analysis&nbsp;succeeds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds"><span class="id" type="variable">hp_bounds</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_analysis_succeeds"><span class="id" type="variable">H_analysis_succeeds</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;the&nbsp;tasks&nbsp;in&nbsp;the&nbsp;prefix&nbsp;of&nbsp;fp_claimed_bounds&nbsp;are&nbsp;exactly&nbsp;interfering&nbsp;tasks<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;under&nbsp;FP&nbsp;scheduling.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.fp_claimed_bounds_unzip1"><span class="id" type="lemma">fp_claimed_bounds_unzip1</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">[</span><span class="id" type="notation">seq</span> <span class="id" type="var">tsk_hp</span> <span class="id" type="notation">&lt;-</span> <span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">|</span> <a class="idref" href="interference.html#Interference.is_interfering_task_fp"><span class="id" type="definition">is_interfering_task_fp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="var">tsk_hp</span><span class="id" type="notation">]</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds"><span class="id" type="variable">hp_bounds</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks"><span class="id" type="section">HighPriorityTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;fixed-point&nbsp;iteration&nbsp;converges.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis.Convergence"><span class="id" type="section">Convergence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;set&nbsp;of&nbsp;higher-priority&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.ts_hp"><span class="id" type="variable">ts_hp</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;response-time&nbsp;analysis&nbsp;succeeds&nbsp;for&nbsp;the&nbsp;higher-priority&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.H_test_succeeds"><span class="id" type="variable">H_test_succeeds</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;task&nbsp;tsk&nbsp;to&nbsp;be&nbsp;analyzed,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;assume&nbsp;all&nbsp;tasks&nbsp;have&nbsp;valid&nbsp;parameters.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.ts_hp"><span class="id" type="variable">ts_hp</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;simplify,&nbsp;let&nbsp;f&nbsp;denote&nbsp;the&nbsp;fixed-point&nbsp;iteration.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> := <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta"><span class="id" type="definition">per_task_rta</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.rt_bounds"><span class="id" type="variable">rt_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;f&nbsp;(max_steps&nbsp;tsk)&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;the&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.H_no_larger_than_deadline"><span class="id" type="variable">H_no_larger_than_deadline</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;show&nbsp;that&nbsp;f&nbsp;is&nbsp;monotonically&nbsp;increasing.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.bertogna_fp_comp_f_monotonic"><span class="id" type="lemma">bertogna_fp_comp_f_monotonic</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span>, <a class="idref" href="bertogna_fp_comp.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#x2"><span class="id" type="variable">x2</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;iteration&nbsp;converged&nbsp;at&nbsp;an&nbsp;earlier&nbsp;step,&nbsp;then&nbsp;it&nbsp;remains&nbsp;stable.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.bertogna_fp_comp_f_converges_early"><span class="id" type="lemma">bertogna_fp_comp_f_converges_early</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">k</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">).+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Else,&nbsp;we&nbsp;derive&nbsp;a&nbsp;contradiction.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;instead&nbsp;that&nbsp;the&nbsp;iteration&nbsp;continued&nbsp;to&nbsp;diverge.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction.H_keeps_diverging"><span class="id" type="variable">H_keeps_diverging</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> -&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;By&nbsp;monotonicity,&nbsp;it&nbsp;follows&nbsp;that&nbsp;the&nbsp;value&nbsp;always&nbsp;increases.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.bertogna_fp_comp_f_increases"><span class="id" type="lemma">bertogna_fp_comp_f_increases</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;end,&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;must&nbsp;exceed&nbsp;the&nbsp;deadline.&nbsp;Contradiction!&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.bertogna_fp_comp_rt_grows_too_much"><span class="id" type="lemma">bertogna_fp_comp_rt_grows_too_much</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&gt;</span> <a class="idref" href="bertogna_fp_comp.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">-</span> 1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above,&nbsp;we&nbsp;prove&nbsp;the&nbsp;convergence&nbsp;of&nbsp;the&nbsp;iteration&nbsp;after&nbsp;max_steps.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeIterationFP.per_task_rta_converges"><span class="id" type="lemma">per_task_rta_converges</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> (<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f"><span class="id" type="variable">f</span></a> <span class="id" type="notation">(</span><a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps"><span class="id" type="definition">max_steps</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">).+1</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Either&nbsp;f&nbsp;converges&nbsp;by&nbsp;the&nbsp;deadline&nbsp;or&nbsp;not.&nbsp;*)</span><br/>
-&nbsp;If&nbsp;not,&nbsp;then&nbsp;we&nbsp;reach&nbsp;a&nbsp;contradiction&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence"><span class="id" type="section">Convergence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeIterationFP.Analysis.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;task&nbsp;set&nbsp;ts.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;higher_eq_priority&nbsp;is&nbsp;a&nbsp;total&nbsp;order.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO:&nbsp;it&nbsp;doesn't&nbsp;have&nbsp;to&nbsp;be&nbsp;total&nbsp;over&nbsp;the&nbsp;entire&nbsp;domain,&nbsp;but<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only&nbsp;within&nbsp;the&nbsp;task&nbsp;set.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;But&nbsp;to&nbsp;weaken&nbsp;the&nbsp;hypothesis,&nbsp;we&nbsp;need&nbsp;to&nbsp;re-prove&nbsp;some&nbsp;lemmas<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;ssreflect.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_transitive"><span class="id" type="variable">H_transitive</span></a>: <span class="id" type="definition">transitive</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_unique_priorities"><span class="id" type="variable">H_unique_priorities</span></a>: <span class="id" type="definition">antisymmetric</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_total"><span class="id" type="variable">H_total</span></a>: <span class="id" type="definition">total</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;task&nbsp;set&nbsp;has&nbsp;no&nbsp;duplicates,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_ts_is_a_set"><span class="id" type="variable">H_ts_is_a_set</span></a>: <span class="id" type="definition">uniq</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...all&nbsp;tasks&nbsp;have&nbsp;valid&nbsp;parameters,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...restricted&nbsp;deadlines,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_restricted_deadlines"><span class="id" type="variable">H_restricted_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;tasks&nbsp;are&nbsp;ordered&nbsp;by&nbsp;increasing&nbsp;priorities.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_sorted_ts"><span class="id" type="variable">H_sorted_ts</span></a>: <span class="id" type="definition">sorted</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;consider&nbsp;any&nbsp;arrival&nbsp;sequence&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...all&nbsp;jobs&nbsp;come&nbsp;from&nbsp;task&nbsp;set&nbsp;ts,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_all_jobs_from_taskset"><span class="id" type="variable">H_all_jobs_from_taskset</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_comp.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...they&nbsp;have&nbsp;valid&nbsp;parameters,...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_valid_job_parameters"><span class="id" type="variable">H_valid_job_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_comp.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;satisfy&nbsp;the&nbsp;sporadic&nbsp;task&nbsp;model.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;consider&nbsp;any&nbsp;platform&nbsp;with&nbsp;at&nbsp;least&nbsp;one&nbsp;CPU&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_at_least_one_cpu"><span class="id" type="variable">H_at_least_one_cpu</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...jobs&nbsp;only&nbsp;execute&nbsp;after&nbsp;they&nbsp;arrived&nbsp;and&nbsp;no&nbsp;longer<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs,...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel&nbsp;(required&nbsp;by&nbsp;the&nbsp;workload&nbsp;bound).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;platform&nbsp;satisfies&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_global_scheduling_invariant"><span class="id" type="variable">H_global_scheduling_invariant</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.FP_scheduling_invariant_holds"><span class="id" type="definition">FP_scheduling_invariant_holds</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority"><span class="id" type="variable">higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task"><span class="id" type="variable">no_deadline_missed_by_task</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job"><span class="id" type="variable">no_deadline_missed_by_job</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by"><span class="id" type="variable">response_time_bounded_by</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;theorem,&nbsp;we&nbsp;prove&nbsp;that&nbsp;any&nbsp;response-time&nbsp;bound&nbsp;contained<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;fp_claimed_bounds&nbsp;is&nbsp;safe.&nbsp;The&nbsp;proof&nbsp;follows&nbsp;by&nbsp;induction&nbsp;on&nbsp;the&nbsp;task&nbsp;set:<br/>
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Induction&nbsp;hypothesis:&nbsp;all&nbsp;higher-priority&nbsp;tasks&nbsp;have&nbsp;safe&nbsp;response-time&nbsp;bounds.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inductive&nbsp;step:&nbsp;We&nbsp;prove&nbsp;that&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;the&nbsp;current&nbsp;task&nbsp;is&nbsp;safe.<br/>
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;the&nbsp;inductive&nbsp;step&nbsp;is&nbsp;a&nbsp;direct&nbsp;application&nbsp;of&nbsp;the&nbsp;main&nbsp;Theorem&nbsp;from<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bertogna_fp_theory.v.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationFP.fp_analysis_yields_response_time_bounds"><span class="id" type="lemma">fp_analysis_yields_response_time_bounds</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:bool_scope:x_'\In'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:bool_scope:x_'\In'_x"><span class="id" type="notation">In</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds"><span class="id" type="definition">fp_claimed_bounds</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by"><span class="id" type="variable">response_time_bounded_by</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_comp.html#R"><span class="id" type="variable">R</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Therefore,&nbsp;if&nbsp;the&nbsp;schedulability&nbsp;test&nbsp;suceeds,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeIterationFP.Analysis.MainProof.H_test_succeeds"><span class="id" type="variable">H_test_succeeds</span></a>: <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_schedulable"><span class="id" type="definition">fp_schedulable</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*...,&nbsp;no&nbsp;task&nbsp;misses&nbsp;its&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationFP.taskset_schedulable_by_fp_rta"><span class="id" type="lemma">taskset_schedulable_by_fp_rta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task"><span class="id" type="variable">no_deadline_missed_by_task</span></a> <a class="idref" href="bertogna_fp_comp.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;For&nbsp;completeness,&nbsp;since&nbsp;all&nbsp;jobs&nbsp;of&nbsp;the&nbsp;arrival&nbsp;sequence<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;spawned&nbsp;by&nbsp;the&nbsp;task&nbsp;set,&nbsp;we&nbsp;also&nbsp;conclude&nbsp;that&nbsp;no&nbsp;job&nbsp;in<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;schedule&nbsp;misses&nbsp;its&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeIterationFP.jobs_schedulable_by_fp_rta"><span class="id" type="lemma">jobs_schedulable_by_fp_rta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job"><span class="id" type="variable">no_deadline_missed_by_job</span></a> <a class="idref" href="bertogna_fp_comp.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis"><span class="id" type="section">Analysis</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_comp.html#"><span class="id" type="module">ResponseTimeIterationFP</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bertogna_fp_theory.html b/bertogna_fp_theory.html
deleted file mode 100644
index abf736aa8..000000000
--- a/bertogna_fp_theory.html
+++ /dev/null
@@ -1,374 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>bertogna_fp_theory</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library bertogna_fp_theory</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="platform.html#"><span class="id" type="library">platform</span></a> <a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="workload_bound.html#"><span class="id" type="library">workload_bound</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a> <a class="idref" href="interference.html#"><span class="id" type="library">interference</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">div</span> <span class="id" type="library">path</span> <span class="id" type="library">tuple</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="ResponseTimeAnalysisFP"><span class="id" type="module">ResponseTimeAnalysisFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Export</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">Workload</span> <span class="id" type="var">Interference</span> <span class="id" type="var">Platform</span> <span class="id" type="var">Schedulability</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">ResponseTime</span> <span class="id" type="var">Priority</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">WorkloadBound</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP"><span class="id" type="section">InterferenceBoundFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk&nbsp;be&nbsp;the&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>)%<span class="id" type="var">type</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;known&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;each&nbsp;interfering&nbsp;task&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev"><span class="id" type="variable">R_prev</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;an&nbsp;interval&nbsp;length&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask"><span class="id" type="section">PerTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other"><span class="id" type="variable">tsk_other</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other"><span class="id" type="variable">R_other</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R"><span class="id" type="variable">tsk_R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Based&nbsp;on&nbsp;the&nbsp;workload&nbsp;bound,&nbsp;Bertogna&nbsp;and&nbsp;Cirinei&nbsp;define&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;following&nbsp;interference&nbsp;bound&nbsp;for&nbsp;a&nbsp;task.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeAnalysisFP.interference_bound_fp"><span class="id" type="definition">interference_bound_fp</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> (<a class="idref" href="workload_bound.html#WorkloadBound.W"><span class="id" type="definition">W</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other"><span class="id" type="variable">R_other</span></a> <span class="id" type="keyword">delta</span>) (<span class="id" type="keyword">delta</span> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">+</span> 1).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask"><span class="id" type="section">PerTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks"><span class="id" type="section">AllTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;an&nbsp;FP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> := <a class="idref" href="interference.html#Interference.is_interfering_task_fp"><span class="id" type="definition">is_interfering_task_fp</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;tsk&nbsp;is&nbsp;bounded&nbsp;by&nbsp;the&nbsp;sum<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;individual&nbsp;task&nbsp;interferences.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTimeAnalysisFP.total_interference_bound_fp"><span class="id" type="definition">total_interference_bound_fp</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">sum_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">((</span></a><span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">&lt;-</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev"><span class="id" type="variable">R_prev</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">|</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> <span class="id" type="var">tsk_other</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.interference_bound_fp"><span class="id" type="definition">interference_bound_fp</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">tsk_other</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_other</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks"><span class="id" type="section">AllTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP"><span class="id" type="section">InterferenceBoundFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;any&nbsp;job&nbsp;arrival&nbsp;sequence...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;in&nbsp;which&nbsp;jobs&nbsp;arrive&nbsp;sporadically&nbsp;and&nbsp;have&nbsp;valid&nbsp;parameters.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_job_parameters"><span class="id" type="variable">H_valid_job_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;schedule&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;before&nbsp;their&nbsp;arrival&nbsp;times&nbsp;nor&nbsp;longer<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also&nbsp;assume&nbsp;that&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel&nbsp;and&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there&nbsp;exists&nbsp;at&nbsp;least&nbsp;one&nbsp;processor.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_at_least_one_cpu"><span class="id" type="variable">H_at_least_one_cpu</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;task&nbsp;set&nbsp;where&nbsp;all&nbsp;tasks&nbsp;have&nbsp;valid<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;and&nbsp;restricted&nbsp;deadlines.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_restricted_deadlines"><span class="id" type="variable">H_restricted_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="bertogna_fp_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;consider&nbsp;a&nbsp;task&nbsp;tsk&nbsp;that&nbsp;is&nbsp;to&nbsp;be&nbsp;analyzed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.task_in_ts"><span class="id" type="variable">task_in_ts</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.no_deadline_is_missed_by_tsk"><span class="id" type="variable">no_deadline_is_missed_by_tsk</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound"><span class="id" type="variable">is_response_time_bound</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;known&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;any&nbsp;interfering&nbsp;task&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a> := (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>)%<span class="id" type="var">type</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time"><span class="id" type="variable">task_with_response_time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;For&nbsp;FP&nbsp;scheduling,&nbsp;assume&nbsp;there&nbsp;exists&nbsp;a&nbsp;fixed&nbsp;task&nbsp;priority.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> := <a class="idref" href="interference.html#Interference.is_interfering_task_fp"><span class="id" type="definition">is_interfering_task_fp</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;hp_bounds&nbsp;has&nbsp;exactly&nbsp;the&nbsp;tasks&nbsp;that&nbsp;interfere&nbsp;with&nbsp;tsk,...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_hp_bounds_has_interfering_tasks"><span class="id" type="variable">H_hp_bounds_has_interfering_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">[</span><span class="id" type="notation">seq</span> <span class="id" type="var">tsk_hp</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">|</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> <span class="id" type="var">tsk_hp</span><span class="id" type="notation">]</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">unzip1</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;that&nbsp;all&nbsp;values&nbsp;in&nbsp;the&nbsp;pairs&nbsp;contain&nbsp;valid&nbsp;response-time&nbsp;bounds&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known"><span class="id" type="variable">H_response_time_of_interfering_tasks_is_known</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">hp_tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;response-time&nbsp;bounds&nbsp;are&nbsp;larger&nbsp;than&nbsp;task&nbsp;costs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_bounds_ge_cost"><span class="id" type="variable">H_response_time_bounds_ge_cost</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">hp_tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> -&gt; <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;no&nbsp;deadline&nbsp;is&nbsp;missed&nbsp;by&nbsp;any&nbsp;interfering&nbsp;task,&nbsp;i.e.,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bound&nbsp;R_other&nbsp;&lt;=&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines"><span class="id" type="variable">H_interfering_tasks_miss_no_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">hp_tsk</span> <span class="id" type="var">R</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> -&gt; <a class="idref" href="bertogna_fp_theory.html#R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#hp_tsk"><span class="id" type="variable">hp_tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;schedule&nbsp;satisfies&nbsp;the&nbsp;global&nbsp;scheduling<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invariant,&nbsp;i.e.,&nbsp;if&nbsp;any&nbsp;job&nbsp;of&nbsp;tsk&nbsp;is&nbsp;backlogged,&nbsp;all<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;processors&nbsp;must&nbsp;be&nbsp;busy&nbsp;with&nbsp;jobs&nbsp;of&nbsp;equal&nbsp;or&nbsp;higher<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;priority.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_global_scheduling_invariant"><span class="id" type="variable">H_global_scheduling_invariant</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.FP_scheduling_invariant_holds"><span class="id" type="definition">FP_scheduling_invariant_holds</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;R&nbsp;be&nbsp;the&nbsp;fixed&nbsp;point&nbsp;of&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;recurrence,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_recurrence_holds"><span class="id" type="variable">H_response_time_recurrence_holds</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp"><span class="id" type="definition">total_interference_bound_fp</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;assume&nbsp;that&nbsp;R&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;the&nbsp;deadline&nbsp;of&nbsp;tsk.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_no_larger_than_deadline"><span class="id" type="variable">H_response_time_no_larger_than_deadline</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;order&nbsp;to&nbsp;prove&nbsp;that&nbsp;R&nbsp;is&nbsp;a&nbsp;response-time&nbsp;bound,&nbsp;we&nbsp;first&nbsp;present&nbsp;some&nbsp;lemmas.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas"><span class="id" type="section">Lemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;job&nbsp;j&nbsp;of&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_job_of_tsk"><span class="id" type="variable">H_job_of_tsk</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;job&nbsp;j&nbsp;hasn't&nbsp;completed&nbsp;by&nbsp;the&nbsp;response&nbsp;time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_j_not_completed"><span class="id" type="variable">H_j_not_completed</span></a>: <span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;call&nbsp;x&nbsp;the&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;due&nbsp;to&nbsp;tsk_other,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;and&nbsp;X&nbsp;the&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;due&nbsp;to&nbsp;any&nbsp;task.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> := <a class="idref" href="interference.html#Interference.total_interference"><span class="id" type="definition">total_interference</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Recall&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;workload&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> (<span class="id" type="var">tsk_other</span>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">R_other</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.W"><span class="id" type="definition">W</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_fp_theory.html#R_other"><span class="id" type="variable">R_other</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;let&nbsp;ts_interf&nbsp;be&nbsp;the&nbsp;subset&nbsp;of&nbsp;tasks&nbsp;that&nbsp;interfere&nbsp;with&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a> := <span class="id" type="notation">[</span><span class="id" type="notation">seq</span> <span class="id" type="var">tsk_other</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a> <span class="id" type="notation">|</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> <span class="id" type="var">tsk_other</span><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks"><span class="id" type="section">LemmasAboutInterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(tsk_other,&nbsp;R_other)&nbsp;be&nbsp;any&nbsp;pair&nbsp;of&nbsp;higher-priority&nbsp;task&nbsp;and<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-time&nbsp;bound&nbsp;computed&nbsp;in&nbsp;previous&nbsp;iterations.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other"><span class="id" type="variable">H_response_time_of_tsk_other</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Note&nbsp;that&nbsp;tsk_other&nbsp;is&nbsp;in&nbsp;task&nbsp;set&nbsp;ts&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_tsk_other_in_ts"><span class="id" type="lemma">bertogna_fp_tsk_other_in_ts</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*...&nbsp;and&nbsp;interferes&nbsp;with&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_tsk_other_interferes"><span class="id" type="lemma">bertogna_fp_tsk_other_interferes</span></a>: <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk"><span class="id" type="variable">interferes_with_tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;tsk_other&nbsp;cannot&nbsp;interfere&nbsp;more&nbsp;than&nbsp;it&nbsp;executes,&nbsp;we&nbsp;show&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;interference&nbsp;caused&nbsp;by&nbsp;tsk_other&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;workload&nbsp;bound&nbsp;W.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_workload_bounds_interference"><span class="id" type="lemma">bertogna_fp_workload_bounds_interference</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other"><span class="id" type="variable">R_other</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks"><span class="id" type="section">LemmasAboutInterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next&nbsp;we&nbsp;prove&nbsp;some&nbsp;lemmas&nbsp;that&nbsp;help&nbsp;to&nbsp;derive&nbsp;a&nbsp;contradiction.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;1)&nbsp;Since&nbsp;job&nbsp;j&nbsp;did&nbsp;not&nbsp;complete&nbsp;by&nbsp;its&nbsp;response&nbsp;time&nbsp;bound,&nbsp;it&nbsp;follows&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;total&nbsp;interference&nbsp;X&nbsp;&gt;=&nbsp;R&nbsp;-&nbsp;e_k&nbsp;+&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_too_much_interference"><span class="id" type="lemma">bertogna_fp_too_much_interference</span></a> : <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;j&nbsp;has&nbsp;not&nbsp;completed,&nbsp;recall&nbsp;the&nbsp;time&nbsp;when&nbsp;it&nbsp;is&nbsp;not<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;executing&nbsp;is&nbsp;the&nbsp;total&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;2)&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;interference&nbsp;of&nbsp;each&nbsp;task&nbsp;is&nbsp;equal<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;total&nbsp;interference&nbsp;multiplied&nbsp;by&nbsp;the&nbsp;number&nbsp;of&nbsp;processors.&nbsp;This<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;holds&nbsp;because&nbsp;interference&nbsp;only&nbsp;occurs&nbsp;when&nbsp;all&nbsp;processors&nbsp;are&nbsp;busy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_all_cpus_busy"><span class="id" type="lemma">bertogna_fp_all_cpus_busy</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X"><span class="id" type="variable">X</span></a> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;(cardGE&nbsp;delta)&nbsp;be&nbsp;the&nbsp;number&nbsp;of&nbsp;interfering&nbsp;tasks&nbsp;whose&nbsp;interference<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;larger&nbsp;than&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> (<span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <span class="id" type="definition">count</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">i</span> =&gt; <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_fp_theory.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span>) <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;3)&nbsp;If&nbsp;there&nbsp;is&nbsp;at&nbsp;least&nbsp;one&nbsp;of&nbsp;such&nbsp;tasks&nbsp;(e.g.,&nbsp;cardGE&nbsp;&gt;&nbsp;0),&nbsp;then&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cumulative&nbsp;interference&nbsp;caused&nbsp;by&nbsp;the&nbsp;complementary&nbsp;set&nbsp;of&nbsp;interfering<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tasks&nbsp;fills&nbsp;at&nbsp;least&nbsp;(num_cpus&nbsp;-&nbsp;cardGE)&nbsp;processors.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_helper_lemma"><span class="id" type="lemma">bertogna_fp_helper_lemma</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="keyword">delta</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> <span class="id" type="keyword">delta</span> <span class="id" type="notation">&gt;</span> 0 -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a> <span class="id" type="notation">|</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="keyword">delta</span><span class="id" type="notation">)</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <span class="id" type="notation">(</span><a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE"><span class="id" type="variable">cardGE</span></a> <span class="id" type="keyword">delta</span><span class="id" type="notation">)</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;4)&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that,&nbsp;for&nbsp;any&nbsp;interval&nbsp;delta,&nbsp;if&nbsp;the&nbsp;sum&nbsp;of&nbsp;per-task<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interference&nbsp;exceeds&nbsp;delta&nbsp;*&nbsp;num_cpus,&nbsp;the&nbsp;same&nbsp;applies&nbsp;for&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;of&nbsp;the&nbsp;minimum&nbsp;between&nbsp;the&nbsp;interference&nbsp;and&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_minimum_exceeds_interference"><span class="id" type="lemma">bertogna_fp_minimum_exceeds_interference</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="keyword">delta</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span> <span class="id" type="notation">&gt;=</span> <span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">tsk_k</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf"><span class="id" type="variable">ts_interf</span></a><span class="id" type="notation">)</span> <span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span>) <span class="id" type="keyword">delta</span> <span class="id" type="notation">&gt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">delta</span> <span class="id" type="notation">*</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;1:&nbsp;cardGE&nbsp;=&nbsp;0&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;2:&nbsp;cardGE&nbsp;&gt;=&nbsp;num_cpus&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Case&nbsp;3:&nbsp;cardGE&nbsp;&lt;&nbsp;num_cpus&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;5)&nbsp;Now,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;Bertogna's&nbsp;interference&nbsp;bound<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;enough&nbsp;to&nbsp;cover&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;"minimum"&nbsp;term&nbsp;over<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;tasks&nbsp;(artifact&nbsp;of&nbsp;the&nbsp;proof&nbsp;by&nbsp;contradiction).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_sum_exceeds_total_interference"><span class="id" type="lemma">bertogna_fp_sum_exceeds_total_interference</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">sum_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">((</span></a><span class="id" type="var">tsk_k</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">,</span></a> <span class="id" type="var">R_k</span><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">&lt;-</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">)</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <span class="id" type="var">tsk_k</span>) (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1) <span class="id" type="notation">&gt;</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp"><span class="id" type="definition">total_interference_bound_fp</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;6)&nbsp;After&nbsp;concluding&nbsp;that&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;minimum&nbsp;exceeds&nbsp;(R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;prove&nbsp;that&nbsp;there&nbsp;exists&nbsp;a&nbsp;tuple&nbsp;(tsk_k,&nbsp;R_k)&nbsp;such&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;(x_k,&nbsp;R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1)&nbsp;&gt;&nbsp;min&nbsp;(W_k,&nbsp;R&nbsp;-&nbsp;e_i&nbsp;+&nbsp;1).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTimeAnalysisFP.bertogna_fp_exists_task_that_exceeds_bound"><span class="id" type="lemma">bertogna_fp_exists_task_that_exceeds_bound</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">tsk_k</span> <span class="id" type="var">R_k</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="bertogna_fp_theory.html#tsk_k"><span class="id" type="variable">tsk_k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="bertogna_fp_theory.html#R_k"><span class="id" type="variable">R_k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds"><span class="id" type="variable">hp_bounds</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">(</span></a><span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x"><span class="id" type="variable">x</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk_k"><span class="id" type="variable">tsk_k</span></a>) (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1) <span class="id" type="notation">&gt;</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> <a class="idref" href="bertogna_fp_theory.html#tsk_k"><span class="id" type="variable">tsk_k</span></a> <a class="idref" href="bertogna_fp_theory.html#R_k"><span class="id" type="variable">R_k</span></a>) (<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a> <span class="id" type="notation">-</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> 1)<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction"><span class="id" type="section">DerivingContradiction</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas"><span class="id" type="section">Lemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above,&nbsp;we&nbsp;prove&nbsp;that&nbsp;R&nbsp;bounds&nbsp;the&nbsp;response&nbsp;time&nbsp;of&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="ResponseTimeAnalysisFP.bertogna_cirinei_response_time_bound_fp"><span class="id" type="lemma">bertogna_cirinei_response_time_bound_fp</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound"><span class="id" type="variable">is_response_time_bound</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;start&nbsp;the&nbsp;proof.&nbsp;Assume&nbsp;by&nbsp;contradiction&nbsp;that&nbsp;job&nbsp;j<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;complete&nbsp;at&nbsp;time&nbsp;(job_arrival&nbsp;j&nbsp;+&nbsp;R).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;derive&nbsp;a&nbsp;contradiction&nbsp;using&nbsp;the&nbsp;previous&nbsp;lemmas.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="bertogna_fp_theory.html#"><span class="id" type="module">ResponseTimeAnalysisFP</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/index.html b/index.html
deleted file mode 100644
index e84f9f304..000000000
--- a/index.html
+++ /dev/null
@@ -1,4215 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>Index</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<table>
-<tr>
-<td>Global Index</td>
-<td><a href="index.html#global_A">A</a></td>
-<td><a href="index.html#global_B">B</a></td>
-<td><a href="index.html#global_C">C</a></td>
-<td><a href="index.html#global_D">D</a></td>
-<td><a href="index.html#global_E">E</a></td>
-<td><a href="index.html#global_F">F</a></td>
-<td><a href="index.html#global_G">G</a></td>
-<td>H</td>
-<td><a href="index.html#global_I">I</a></td>
-<td><a href="index.html#global_J">J</a></td>
-<td>K</td>
-<td><a href="index.html#global_L">L</a></td>
-<td><a href="index.html#global_M">M</a></td>
-<td><a href="index.html#global_N">N</a></td>
-<td><a href="index.html#global_O">O</a></td>
-<td><a href="index.html#global_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#global_R">R</a></td>
-<td><a href="index.html#global_S">S</a></td>
-<td><a href="index.html#global_T">T</a></td>
-<td><a href="index.html#global_U">U</a></td>
-<td><a href="index.html#global_V">V</a></td>
-<td><a href="index.html#global_W">W</a></td>
-<td><a href="index.html#global_X">X</a></td>
-<td>Y</td>
-<td><a href="index.html#global_Z">Z</a></td>
-<td>_</td>
-<td><a href="index.html#global_*">other</a></td>
-<td>(1571 entries)</td>
-</tr>
-<tr>
-<td>Notation Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#notation_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td><a href="index.html#notation_*">other</a></td>
-<td>(19 entries)</td>
-</tr>
-<tr>
-<td>Module Index</td>
-<td><a href="index.html#module_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#module_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#module_I">I</a></td>
-<td><a href="index.html#module_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#module_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#module_R">R</a></td>
-<td><a href="index.html#module_S">S</a></td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#module_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(28 entries)</td>
-</tr>
-<tr>
-<td>Variable Index</td>
-<td><a href="index.html#variable_A">A</a></td>
-<td><a href="index.html#variable_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#variable_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#variable_I">I</a></td>
-<td><a href="index.html#variable_J">J</a></td>
-<td>K</td>
-<td><a href="index.html#variable_L">L</a></td>
-<td>M</td>
-<td><a href="index.html#variable_N">N</a></td>
-<td><a href="index.html#variable_O">O</a></td>
-<td><a href="index.html#variable_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#variable_R">R</a></td>
-<td><a href="index.html#variable_S">S</a></td>
-<td><a href="index.html#variable_T">T</a></td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#variable_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(767 entries)</td>
-</tr>
-<tr>
-<td>Library Index</td>
-<td><a href="index.html#library_A">A</a></td>
-<td><a href="index.html#library_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#library_E">E</a></td>
-<td>F</td>
-<td><a href="index.html#library_G">G</a></td>
-<td>H</td>
-<td><a href="index.html#library_I">I</a></td>
-<td><a href="index.html#library_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#library_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#library_R">R</a></td>
-<td><a href="index.html#library_S">S</a></td>
-<td><a href="index.html#library_T">T</a></td>
-<td><a href="index.html#library_U">U</a></td>
-<td><a href="index.html#library_V">V</a></td>
-<td><a href="index.html#library_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(29 entries)</td>
-</tr>
-<tr>
-<td>Lemma Index</td>
-<td><a href="index.html#lemma_A">A</a></td>
-<td><a href="index.html#lemma_B">B</a></td>
-<td><a href="index.html#lemma_C">C</a></td>
-<td><a href="index.html#lemma_D">D</a></td>
-<td><a href="index.html#lemma_E">E</a></td>
-<td><a href="index.html#lemma_F">F</a></td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#lemma_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td><a href="index.html#lemma_L">L</a></td>
-<td><a href="index.html#lemma_M">M</a></td>
-<td><a href="index.html#lemma_N">N</a></td>
-<td><a href="index.html#lemma_O">O</a></td>
-<td><a href="index.html#lemma_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#lemma_R">R</a></td>
-<td><a href="index.html#lemma_S">S</a></td>
-<td><a href="index.html#lemma_T">T</a></td>
-<td><a href="index.html#lemma_U">U</a></td>
-<td><a href="index.html#lemma_V">V</a></td>
-<td><a href="index.html#lemma_W">W</a></td>
-<td><a href="index.html#lemma_X">X</a></td>
-<td>Y</td>
-<td><a href="index.html#lemma_Z">Z</a></td>
-<td>_</td>
-<td>other</td>
-<td>(385 entries)</td>
-</tr>
-<tr>
-<td>Constructor Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#constructor_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#constructor_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#constructor_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#constructor_R">R</a></td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(7 entries)</td>
-</tr>
-<tr>
-<td>Axiom Index</td>
-<td><a href="index.html#axiom_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td>E</td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(1 entry)</td>
-</tr>
-<tr>
-<td>Projection Index</td>
-<td><a href="index.html#projection_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#projection_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(4 entries)</td>
-</tr>
-<tr>
-<td>Inductive Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td>E</td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#inductive_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#inductive_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#inductive_R">R</a></td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(3 entries)</td>
-</tr>
-<tr>
-<td>Section Index</td>
-<td><a href="index.html#section_A">A</a></td>
-<td><a href="index.html#section_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#section_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#section_I">I</a></td>
-<td><a href="index.html#section_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td><a href="index.html#section_N">N</a></td>
-<td><a href="index.html#section_O">O</a></td>
-<td><a href="index.html#section_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#section_R">R</a></td>
-<td><a href="index.html#section_S">S</a></td>
-<td><a href="index.html#section_T">T</a></td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#section_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(143 entries)</td>
-</tr>
-<tr>
-<td>Abbreviation Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#abbreviation_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(5 entries)</td>
-</tr>
-<tr>
-<td>Definition Index</td>
-<td><a href="index.html#definition_A">A</a></td>
-<td>B</td>
-<td><a href="index.html#definition_C">C</a></td>
-<td><a href="index.html#definition_D">D</a></td>
-<td><a href="index.html#definition_E">E</a></td>
-<td><a href="index.html#definition_F">F</a></td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#definition_I">I</a></td>
-<td><a href="index.html#definition_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td><a href="index.html#definition_M">M</a></td>
-<td><a href="index.html#definition_N">N</a></td>
-<td><a href="index.html#definition_O">O</a></td>
-<td><a href="index.html#definition_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#definition_R">R</a></td>
-<td><a href="index.html#definition_S">S</a></td>
-<td><a href="index.html#definition_T">T</a></td>
-<td><a href="index.html#definition_U">U</a></td>
-<td>V</td>
-<td><a href="index.html#definition_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(177 entries)</td>
-</tr>
-<tr>
-<td>Record Index</td>
-<td><a href="index.html#record_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#record_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(3 entries)</td>
-</tr>
-</table>
-<hr/>
-<h1>Global Index</h1>
-<a name="global_A"></a><h2>A </h2>
-<a href="ExtraRelations.html#acyclic">acyclic</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#acyclic_mon">acyclic_mon</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#addmovl">addmovl</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#addmovr">addmovr</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#addnb">addnb</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#andP">andP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#antisymmetric_over_seq">antisymmetric_over_seq</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="extralib.html#appA">appA</a> [definition, in <a href="extralib.html">extralib</a>]<br/>
-<a href="Vbase.html#appP">appP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence">ArrivalSequence</a> [module, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef">ArrivalSequence.ArrivalSequenceDef</a> [section, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef.Job">ArrivalSequence.ArrivalSequenceDef.Job</a> [variable, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties">ArrivalSequence.ArrivalSequenceProperties</a> [section, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.arr_seq">ArrivalSequence.ArrivalSequenceProperties.arr_seq</a> [variable, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrival_sequence_is_a_set">ArrivalSequence.arrival_sequence_is_a_set</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrival_sequence">ArrivalSequence.arrival_sequence</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrived_between">ArrivalSequence.arrived_between</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrived_before">ArrivalSequence.arrived_before</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrives_at">ArrivalSequence.arrives_at</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivingJobs">ArrivalSequence.ArrivingJobs</a> [section, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.j">ArrivalSequence.ArrivingJobs.j</a> [variable, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.eqn_jobin">ArrivalSequence.eqn_jobin</a> [axiom, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.has_arrived">ArrivalSequence.has_arrived</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.JobIn">ArrivalSequence.JobIn</a> [record, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence">ArrivalSequence.JobInArrivalSequence</a> [section, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqType">ArrivalSequence.jobin_eqType</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqMixin">ArrivalSequence.jobin_eqMixin</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqdef">ArrivalSequence.jobin_eqdef</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.JobIn_is_Job">ArrivalSequence.JobIn_is_Job</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.job_arrival">ArrivalSequence.job_arrival</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.no_multiple_arrivals">ArrivalSequence.no_multiple_arrivals</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.time">ArrivalSequence.time</a> [definition, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence._arrival_time">ArrivalSequence._arrival_time</a> [projection, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence._job_in">ArrivalSequence._job_in</a> [projection, in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html">arrival_sequence</a> [library]<br/>
-<a href="ExtraRelations.html#asymmetric">asymmetric</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="global_B"></a><h2>B </h2>
-<a href="util_lemmas.html#before_ij_implies_leq_ij">before_ij_implies_leq_ij</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#beq_sym">beq_sym</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#beq_refl">beq_refl</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="bertogna_edf_comp.html">bertogna_edf_comp</a> [library]<br/>
-<a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a> [library]<br/>
-<a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a> [library]<br/>
-<a href="bertogna_fp_comp.html">bertogna_fp_comp</a> [library]<br/>
-<a href="bertogna_fp_theory.html">bertogna_fp_theory</a> [library]<br/>
-<a href="bertogna_edf_theory.html">bertogna_edf_theory</a> [library]<br/>
-<a href="util_lemmas.html#bigcat_ord_uniq">bigcat_ord_uniq</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#big_mkord_ord">big_mkord_ord</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#BoolIf">BoolIf</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.A">BoolIf.A</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.b">BoolIf.b</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.B">BoolIf.B</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.f">BoolIf.f</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.vF">BoolIf.vF</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.vT">BoolIf.vT</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.x">BoolIf.x</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_C"></a><h2>C </h2>
-<a href="ExtraRelations.html#clos_trans_imm2">clos_trans_imm2</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_imm">clos_trans_imm</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_eq_union">clos_trans_restr_eq_union</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_trans_cycle">clos_trans_restr_trans_cycle</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_trans_mid">clos_trans_restr_trans_mid</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_disj_rel">clos_trans_disj_rel</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr">clos_trans_restr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_monotonic">clos_trans_monotonic</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_inclusion_clos_refl_trans">clos_trans_inclusion_clos_refl_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_inclusion">clos_trans_inclusion</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_eqD">clos_trans_restr_eqD</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restrD">clos_trans_restrD</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_of_clos_trans1">clos_trans_of_clos_trans1</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_eq">clos_trans_eq</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_of_transitive">clos_trans_of_transitive</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_in_rt">clos_trans_in_rt</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_refl_transE">clos_refl_transE</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_refl_trans_mon">clos_refl_trans_mon</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_mon">clos_trans_mon</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#comp_relation_trans">comp_relation_trans</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#comp_relation">comp_relation</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#contra">contra</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#cycle_disj">cycle_disj</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u_1">cycle_decomp_u_1</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u_total">cycle_decomp_u_total</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u1">cycle_decomp_u1</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="global_D"></a><h2>D </h2>
-<a href="Vbase.html#decP">decP</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#decPcases">decPcases</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="extralib.html#disjoint">disjoint</a> [definition, in <a href="extralib.html">extralib</a>]<br/>
-<a href="util_lemmas.html#divSn_cases">divSn_cases</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_divround.html#div_ceil">div_ceil</a> [definition, in <a href="util_divround.html">util_divround</a>]<br/>
-<a href="util_divround.html#div_floor">div_floor</a> [definition, in <a href="util_divround.html">util_divround</a>]<br/>
-<br/><br/><a name="global_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound">EDFSpecificBound</a> [module, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef">EDFSpecificBound.EDFBoundDef</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.delta">EDFSpecificBound.EDFBoundDef.delta</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.R_other">EDFSpecificBound.EDFBoundDef.R_other</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_deadline">EDFSpecificBound.EDFBoundDef.task_deadline</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_period">EDFSpecificBound.EDFBoundDef.task_period</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_cost">EDFSpecificBound.EDFBoundDef.task_cost</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk">EDFSpecificBound.EDFBoundDef.tsk</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk_other">EDFSpecificBound.EDFBoundDef.tsk_other</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.edf_specific_interference_bound">EDFSpecificBound.edf_specific_interference_bound</a> [definition, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_bounds_interference">EDFSpecificBound.interference_bound_edf_bounds_interference</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_multiple_jobs">EDFSpecificBound.interference_bound_edf_holds_for_multiple_jobs</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_concatenation_of_intervals">EDFSpecificBound.interference_bound_edf_simpl_by_concatenation_of_intervals</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_bounding_interference_with_interval_lengths">EDFSpecificBound.interference_bound_edf_bounding_interference_with_interval_lengths</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_bounded_by_response_time">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_bounded_by_response_time</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_moving_to_left_side">EDFSpecificBound.interference_bound_edf_simpl_by_moving_to_left_side</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_remainder_ge_slack">EDFSpecificBound.interference_bound_edf_remainder_ge_slack</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_n_k_equals_num_mid_jobs_plus_one">EDFSpecificBound.interference_bound_edf_n_k_equals_num_mid_jobs_plus_one</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_middle_and_last_jobs">EDFSpecificBound.interference_bound_edf_holds_for_middle_and_last_jobs</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_n_k_covers_middle_jobs_plus_one">EDFSpecificBound.interference_bound_edf_n_k_covers_middle_jobs_plus_one</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_many_periods_in_between">EDFSpecificBound.interference_bound_edf_many_periods_in_between</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_completed_on_time">EDFSpecificBound.interference_bound_edf_j_fst_completed_on_time</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_last_job_arrives_before_end_of_interval">EDFSpecificBound.interference_bound_edf_last_job_arrives_before_end_of_interval</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_before_j_lst">EDFSpecificBound.interference_bound_edf_j_fst_before_j_lst</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_lst_deadline">EDFSpecificBound.interference_bound_edf_j_lst_deadline</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_lst_is_job_of_tsk_k">EDFSpecificBound.interference_bound_edf_j_lst_is_job_of_tsk_k</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_a_single_job">EDFSpecificBound.interference_bound_edf_holds_for_a_single_job</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_slack">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_slack</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_small_slack">EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_small_slack</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_big_slack">EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_big_slack</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_response_time_bound_of_j_fst_after_interval">EDFSpecificBound.interference_bound_edf_response_time_bound_of_j_fst_after_interval</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_that_completes_on_time">EDFSpecificBound.interference_bound_edf_holds_for_single_job_that_completes_on_time</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_when_there's_one_job">EDFSpecificBound.interference_bound_edf_simpl_when_there's_one_job</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval">EDFSpecificBound.interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_i_deadline">EDFSpecificBound.interference_bound_edf_j_i_deadline</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_deadline">EDFSpecificBound.interference_bound_edf_j_fst_deadline</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_is_job_of_tsk_k">EDFSpecificBound.interference_bound_edf_j_fst_is_job_of_tsk_k</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_at_least_one_job">EDFSpecificBound.interference_bound_edf_at_least_one_job</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_at_most_n_k_jobs">EDFSpecificBound.interference_bound_edf_holds_for_at_most_n_k_jobs</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_under_edf_implies_shorter_deadlines">EDFSpecificBound.interference_under_edf_implies_shorter_deadlines</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_le_task_cost">EDFSpecificBound.interference_bound_edf_interference_le_task_cost</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_jobs_ordered_by_arrival">EDFSpecificBound.interference_bound_edf_jobs_ordered_by_arrival</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_all_jobs_from_tsk_k">EDFSpecificBound.interference_bound_edf_all_jobs_from_tsk_k</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_job_in_same_sequence">EDFSpecificBound.interference_bound_edf_job_in_same_sequence</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_sorting_interfering_jobs">EDFSpecificBound.interference_bound_edf_simpl_by_sorting_interfering_jobs</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_filtering_interfering_jobs">EDFSpecificBound.interference_bound_edf_simpl_by_filtering_interfering_jobs</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_use_another_definition">EDFSpecificBound.interference_bound_edf_use_another_definition</a> [lemma, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound">EDFSpecificBound.ProofInterferenceBound</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.all_jobs_from_taskset">EDFSpecificBound.ProofInterferenceBound.all_jobs_from_taskset</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.delta">EDFSpecificBound.ProofInterferenceBound.delta</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.higher_eq_priority">EDFSpecificBound.ProofInterferenceBound.higher_eq_priority</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_all_previous_jobs_completed_on_time">EDFSpecificBound.ProofInterferenceBound.H_all_previous_jobs_completed_on_time</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_delta_le_deadline">EDFSpecificBound.ProofInterferenceBound.H_delta_le_deadline</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_R_k_le_deadline">EDFSpecificBound.ProofInterferenceBound.H_R_k_le_deadline</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_tsk_k_in_task_set">EDFSpecificBound.ProofInterferenceBound.H_tsk_k_in_task_set</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_job_of_tsk_i">EDFSpecificBound.ProofInterferenceBound.H_job_of_tsk_i</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_tsk_i_in_task_set">EDFSpecificBound.ProofInterferenceBound.H_tsk_i_in_task_set</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_global_scheduling_invariant">EDFSpecificBound.ProofInterferenceBound.H_global_scheduling_invariant</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_restricted_deadlines">EDFSpecificBound.ProofInterferenceBound.H_restricted_deadlines</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_valid_task_parameters">EDFSpecificBound.ProofInterferenceBound.H_valid_task_parameters</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_at_least_one_cpu">EDFSpecificBound.ProofInterferenceBound.H_at_least_one_cpu</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_no_parallelism">EDFSpecificBound.ProofInterferenceBound.H_no_parallelism</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_completed_jobs_dont_execute">EDFSpecificBound.ProofInterferenceBound.H_completed_jobs_dont_execute</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_jobs_must_arrive_to_execute">EDFSpecificBound.ProofInterferenceBound.H_jobs_must_arrive_to_execute</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_valid_job_parameters">EDFSpecificBound.ProofInterferenceBound.H_valid_job_parameters</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_sporadic_tasks">EDFSpecificBound.ProofInterferenceBound.H_sporadic_tasks</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task">EDFSpecificBound.ProofInterferenceBound.job_task</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline">EDFSpecificBound.ProofInterferenceBound.job_deadline</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost">EDFSpecificBound.ProofInterferenceBound.job_cost</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i">EDFSpecificBound.ProofInterferenceBound.j_i</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof">EDFSpecificBound.ProofInterferenceBound.MainProof</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k">EDFSpecificBound.ProofInterferenceBound.MainProof.D_k</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i">EDFSpecificBound.ProofInterferenceBound.MainProof.D_i</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF">EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs.H_few_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs.H_few_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.H_many_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.H_many_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.H_only_one_job">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.H_only_one_job</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded.H_j_fst_completed_by_rt_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded.H_j_fst_completed_by_rt_bound</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded.H_j_fst_not_complete_by_rt_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded.H_j_fst_not_complete_by_rt_bound</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.H_at_least_two_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.H_at_least_two_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by">EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k">EDFSpecificBound.ProofInterferenceBound.MainProof.n_k</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.order">EDFSpecificBound.ProofInterferenceBound.MainProof.order</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k">EDFSpecificBound.ProofInterferenceBound.MainProof.p_k</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence">EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence</a> [section, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1">EDFSpecificBound.ProofInterferenceBound.MainProof.t1</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2">EDFSpecificBound.ProofInterferenceBound.MainProof.t2</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.x">EDFSpecificBound.ProofInterferenceBound.MainProof.x</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.no_deadline_is_missed_by_tsk">EDFSpecificBound.ProofInterferenceBound.no_deadline_is_missed_by_tsk</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.num_cpus">EDFSpecificBound.ProofInterferenceBound.num_cpus</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.response_time_bounded_by">EDFSpecificBound.ProofInterferenceBound.response_time_bounded_by</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k">EDFSpecificBound.ProofInterferenceBound.R_k</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched">EDFSpecificBound.ProofInterferenceBound.sched</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline">EDFSpecificBound.ProofInterferenceBound.task_deadline</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period">EDFSpecificBound.ProofInterferenceBound.task_period</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost">EDFSpecificBound.ProofInterferenceBound.task_cost</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts">EDFSpecificBound.ProofInterferenceBound.ts</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k">EDFSpecificBound.ProofInterferenceBound.tsk_k</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i">EDFSpecificBound.ProofInterferenceBound.tsk_i</a> [variable, in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#elimF">elimF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimFn">elimFn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimN">elimN</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimNf">elimNf</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimNTF">elimNTF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimT">elimT</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTF">elimTF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTFn">elimTFn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTn">elimTn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqE">eqE</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqP">eqP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality">Equality</a> [module, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.axiom">Equality.axiom</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.class">Equality.class</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef">Equality.ClassDef</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef.cT">Equality.ClassDef.cT</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef.T">Equality.ClassDef.T</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.class_of">Equality.class_of</a> [abbreviation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.clone">Equality.clone</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports">Equality.Exports</a> [module, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.EqMixin">Equality.Exports.EqMixin</a> [abbreviation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.EqType">Equality.Exports.EqType</a> [abbreviation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.eqType">Equality.Exports.eqType</a> [abbreviation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqType'_'of'_x_']'">[ eqType of _ ] (form_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqType'_'of'_x_'for'_x_']'">[ eqType of _ for _ ] (form_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqMixin'_'of'_x_']'">[ eqMixin of _ ] (form_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Mixin">Equality.Mixin</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.mixin_of">Equality.mixin_of</a> [record, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.op">Equality.op</a> [projection, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.pack">Equality.pack</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Pack">Equality.Pack</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.sort">Equality.sort</a> [projection, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.type">Equality.type</a> [record, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#equivPif">equivPif</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#equivPifn">equivPifn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqxx">eqxx</a> [abbreviation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#eq_ext_tuple_to_fun_index">eq_ext_tuple_to_fun_index</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#eq_bigr_ord">eq_bigr_ord</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#eq_fun_ord_to_nat">eq_fun_ord_to_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#eq_op">eq_op</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#exists_unzip2">exists_unzip2</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#exists_inPQ_nat">exists_inPQ_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#exists_inP_nat">exists_inP_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#extend_sum">extend_sum</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#extend_ord">extend_ord</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="extralib.html">extralib</a> [library]<br/>
-<a href="ExtraRelations.html">ExtraRelations</a> [library]<br/>
-<a href="util_lemmas.html#ext_tuple_to_fun_index">ext_tuple_to_fun_index</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ex2E">ex2E</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_F"></a><h2>F </h2>
-<a href="extralib.html#flatten">flatten</a> [definition, in <a href="extralib.html">extralib</a>]<br/>
-<a href="util_lemmas.html#forall_inP_nat">forall_inP_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon_generic">fun_mon_iter_mon_generic</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon_helper">fun_mon_iter_mon_helper</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon">fun_mon_iter_mon</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_ord_to_nat">fun_ord_to_nat</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#fun_if">fun_if</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_G"></a><h2>G </h2>
-<a href="guan_fp_comp.html">guan_fp_comp</a> [library]<br/>
-<a href="guan_fp_theory.html">guan_fp_theory</a> [library]<br/>
-<br/><br/><a name="global_I"></a><h2>I </h2>
-<a href="Vbase.html#idfun">idfun</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#idP">idP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#idPn">idPn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#iffP">iffP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ifP">ifP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#IfSpecFalse">IfSpecFalse</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#IfSpecTrue">IfSpecTrue</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_arg">if_arg</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_neg">if_neg</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_same">if_same</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_spec">if_spec</a> [inductive, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#immediate">immediate</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="interference.html#Interference">Interference</a> [module, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html">interference</a> [library]<br/>
-<a href="interference_bound_edf.html">interference_bound_edf</a> [library]<br/>
-<a href="interference.html#Interference.complement_of_interf_equals_service">Interference.complement_of_interf_equals_service</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs">Interference.InterferenceDefs</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.BasicLemmas">Interference.InterferenceDefs.BasicLemmas</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.BoundUsingPerJobInterference">Interference.InterferenceDefs.BoundUsingPerJobInterference</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService">Interference.InterferenceDefs.CorrespondenceWithService</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.completed_jobs_dont_execute">Interference.InterferenceDefs.CorrespondenceWithService.completed_jobs_dont_execute</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.jobs_must_arrive_to_execute">Interference.InterferenceDefs.CorrespondenceWithService.jobs_must_arrive_to_execute</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.job_is_not_complete">Interference.InterferenceDefs.CorrespondenceWithService.job_is_not_complete</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.job_has_arrived">Interference.InterferenceDefs.CorrespondenceWithService.job_has_arrived</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.no_parallelism">Interference.InterferenceDefs.CorrespondenceWithService.no_parallelism</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1">Interference.InterferenceDefs.CorrespondenceWithService.t1</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2">Interference.InterferenceDefs.CorrespondenceWithService.t2</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.EquivalenceWithPerJobInterference">Interference.InterferenceDefs.EquivalenceWithPerJobInterference</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.EquivalenceWithPerJobInterference.H_no_intratask_parallelism">Interference.InterferenceDefs.EquivalenceWithPerJobInterference.H_no_intratask_parallelism</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.j">Interference.InterferenceDefs.j</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.JobInterference">Interference.InterferenceDefs.JobInterference</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.JobInterference.job_other">Interference.InterferenceDefs.JobInterference.job_other</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_is_backlogged">Interference.InterferenceDefs.job_is_backlogged</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_task">Interference.InterferenceDefs.job_task</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_cost">Interference.InterferenceDefs.job_cost</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.sched">Interference.InterferenceDefs.sched</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterference">Interference.InterferenceDefs.TaskInterference</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList">Interference.InterferenceDefs.TaskInterferenceJobList</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other">Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterference.tsk_other">Interference.InterferenceDefs.TaskInterference.tsk_other</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TotalInterference">Interference.InterferenceDefs.TotalInterference</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.interference_le_interference_joblist">Interference.interference_le_interference_joblist</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.interference_eq_interference_joblist">Interference.interference_eq_interference_joblist</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks">Interference.InterferingTasks</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.FP">Interference.InterferingTasks.FP</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.FP.higher_eq_priority">Interference.InterferingTasks.FP.higher_eq_priority</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.JLFP">Interference.InterferingTasks.JLFP</a> [section, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_deadline">Interference.InterferingTasks.task_deadline</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_period">Interference.InterferingTasks.task_period</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_cost">Interference.InterferingTasks.task_cost</a> [variable, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.is_interfering_task_jlfp">Interference.is_interfering_task_jlfp</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.is_interfering_task_fp">Interference.is_interfering_task_fp</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference_le_service">Interference.job_interference_le_service</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference_le_delta">Interference.job_interference_le_delta</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference">Interference.job_interference</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.schedules_job_of_tsk">Interference.schedules_job_of_tsk</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference_le_workload">Interference.task_interference_le_workload</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference_joblist">Interference.task_interference_joblist</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference">Interference.task_interference</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_is_scheduled">Interference.task_is_scheduled</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.total_interference_le_delta">Interference.total_interference_le_delta</a> [lemma, in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.total_interference">Interference.total_interference</a> [definition, in <a href="interference.html">interference</a>]<br/>
-<a href="Vbase.html#introF">introF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introFn">introFn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introN">introN</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introNf">introNf</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introNTF">introNTF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introP">introP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introT">introT</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTF">introTF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTFn">introTFn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTn">introTn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#In_undup">In_undup</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#In_flatten">In_flatten</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filterD">In_filterD</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filterI">In_filterI</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filter">In_filter</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_map">In_map</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_mapD">In_mapD</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_mapI">In_mapI</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_revD">In_revD</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_revI">In_revI</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_rev">In_rev</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_app">In_app</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appD">In_appD</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appI2">In_appI2</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appI1">In_appI1</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_dec">In_dec</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_split">In_split</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_nil">In_nil</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_cons">In_cons</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_eq">In_eq</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="ExtraRelations.html#irreflexive">irreflexive</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#irreflexive_inclusion">irreflexive_inclusion</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#is_total_restr">is_total_restr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#is_total">is_total</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="Vbase.html#is_true">is_true</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#iter_fix">iter_fix</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_J"></a><h2>J </h2>
-<a href="job.html#Job">Job</a> [module, in <a href="job.html">job</a>]<br/>
-<a href="job.html">job</a> [library]<br/>
-<a href="job.html#Job.job_jitter_leq_task_jitter">Job.job_jitter_leq_task_jitter</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_deadline_eq_task_deadline">Job.job_deadline_eq_task_deadline</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_le_task_cost">Job.job_cost_le_task_cost</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_le_deadline">Job.job_cost_le_deadline</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_deadline_positive">Job.job_deadline_positive</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_positive">Job.job_cost_positive</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidJob">Job.ValidJob</a> [section, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidJob.j">Job.ValidJob.j</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidJob.job_cost">Job.ValidJob.job_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob">Job.ValidRealtimeJob</a> [section, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.j">Job.ValidRealtimeJob.j</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.job_deadline">Job.ValidRealtimeJob.job_deadline</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.job_cost">Job.ValidRealtimeJob.job_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob">Job.ValidSporadicTaskJob</a> [section, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter">Job.ValidSporadicTaskJobWithJitter</a> [section, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.j">Job.ValidSporadicTaskJobWithJitter.j</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_jitter">Job.ValidSporadicTaskJobWithJitter.job_jitter</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_task">Job.ValidSporadicTaskJobWithJitter.job_task</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_deadline">Job.ValidSporadicTaskJobWithJitter.job_deadline</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_cost">Job.ValidSporadicTaskJobWithJitter.job_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.j_is_valid_job">Job.ValidSporadicTaskJobWithJitter.j_is_valid_job</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_jitter">Job.ValidSporadicTaskJobWithJitter.task_jitter</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_deadline">Job.ValidSporadicTaskJobWithJitter.task_deadline</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_cost">Job.ValidSporadicTaskJobWithJitter.task_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.j">Job.ValidSporadicTaskJob.j</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_task">Job.ValidSporadicTaskJob.job_task</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_deadline">Job.ValidSporadicTaskJob.job_deadline</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_cost">Job.ValidSporadicTaskJob.job_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.task_deadline">Job.ValidSporadicTaskJob.task_deadline</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.task_cost">Job.ValidSporadicTaskJob.task_cost</a> [variable, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_sporadic_job_with_jitter">Job.valid_sporadic_job_with_jitter</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_sporadic_job">Job.valid_sporadic_job</a> [definition, in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_realtime_job">Job.valid_realtime_job</a> [definition, in <a href="job.html">job</a>]<br/>
-<br/><br/><a name="global_L"></a><h2>L </h2>
-<a href="util_lemmas.html#l">l</a> [variable, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#leq_big_max">leq_big_max</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#leq_ij_implies_before_ij">leq_ij_implies_before_ij</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#leq_as_delta">leq_as_delta</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ltn_div_trunc">ltn_div_trunc</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ltSnm">ltSnm</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_M"></a><h2>M </h2>
-<a href="util_lemmas.html#make_sequence">make_sequence</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#max_elt_clos_trans">max_elt_clos_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#max_elt">max_elt</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#mem_zip_exists">mem_zip_exists</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_zip">mem_zip</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_powerset">mem_powerset</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_ord_exists">mem_bigcat_ord_exists</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_ord">mem_bigcat_ord</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_nat">mem_bigcat_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#min_lt_same">min_lt_same</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_N"></a><h2>N </h2>
-<a href="Vbase.html#nandP">nandP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#NegationLemmas">NegationLemmas</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#NegationLemmas.b">NegationLemmas.b</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#NegationLemmas.c">NegationLemmas.c</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbF">negbF</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbFE">negbFE</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbLR">negbLR</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbNE">negbNE</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbRL">negbRL</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbT">negbT</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbTE">negbTE</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negP">negP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negPf">negPf</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negPn">negPn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#neqP">neqP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#NoDup_undup">NoDup_undup</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#NoDup_mapD">NoDup_mapD</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#NoDup_eq_one">NoDup_eq_one</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#NoDup_filter">NoDup_filter</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_left">nodup_append_left</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_right">nodup_append_right</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append">nodup_append</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_app">nodup_app</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_cons">nodup_cons</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_commut">nodup_append_commut</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_map">nodup_map</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_one">nodup_one</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="Vbase.html#norP">norP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#no_intersection">no_intersection</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#NW">NW</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_O"></a><h2>O </h2>
-<a href="ExtraRelations.html#one_ext_total_elem">one_ext_total_elem</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_irr">one_ext_irr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_trans">one_ext_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_extends">one_ext_extends</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext">one_ext</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension.rel">one_extension.rel</a> [variable, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension.elem">one_extension.elem</a> [variable, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension.X">one_extension.X</a> [variable, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension">one_extension</a> [section, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#order_sorted_rcons">order_sorted_rcons</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#orP">orP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_P"></a><h2>P </h2>
-<a href="util_lemmas.html#Pair">Pair</a> [section, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#pair_2nd">pair_2nd</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#pair_1st">pair_1st</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#Pair.p">Pair.p</a> [variable, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#path_decomp_u_1">path_decomp_u_1</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#path_decomp_u_total">path_decomp_u_total</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#path_decomp_u1">path_decomp_u1</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#Permutation_NoDup">Permutation_NoDup</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#perm_from_subset">perm_from_subset</a> [lemma, in <a href="extralib.html">extralib</a>]<br/>
-<a href="Vbase.html#Phantom">Phantom</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#phantom">phantom</a> [inductive, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#phant_id">phant_id</a> [definition, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="platform.html#Platform">Platform</a> [module, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html">platform</a> [library]<br/>
-<a href="platform.html#Platform.cpus_busy_with_interfering_tasks">Platform.cpus_busy_with_interfering_tasks</a> [lemma, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.FP_scheduling_invariant_holds">Platform.FP_scheduling_invariant_holds</a> [definition, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.interfering_job_has_higher_eq_prio">Platform.interfering_job_has_higher_eq_prio</a> [lemma, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds">Platform.JLFP_JLDP_scheduling_invariant_holds</a> [definition, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.scheduled_jobs_unique">Platform.scheduled_jobs_unique</a> [lemma, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants">Platform.SchedulingInvariants</a> [section, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.FP">Platform.SchedulingInvariants.FP</a> [section, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.FP.higher_eq_priority">Platform.SchedulingInvariants.FP.higher_eq_priority</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP">Platform.SchedulingInvariants.JLDP</a> [section, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas">Platform.SchedulingInvariants.JLDP.BasicLemmas</a> [section, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_intra_task_parallelism">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_intra_task_parallelism</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_parallelism">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_parallelism</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_all_jobs_from_taskset">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_all_jobs_from_taskset</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_ts_is_a_set">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_ts_is_a_set</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_invariant_holds">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_invariant_holds</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.higher_eq_priority">Platform.SchedulingInvariants.JLDP.higher_eq_priority</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_task">Platform.SchedulingInvariants.job_task</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_deadline">Platform.SchedulingInvariants.job_deadline</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_cost">Platform.SchedulingInvariants.job_cost</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.num_cpus">Platform.SchedulingInvariants.num_cpus</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.sched">Platform.SchedulingInvariants.sched</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_deadline">Platform.SchedulingInvariants.task_deadline</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_period">Platform.SchedulingInvariants.task_period</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_cost">Platform.SchedulingInvariants.task_cost</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.ts">Platform.SchedulingInvariants.ts</a> [variable, in <a href="platform.html">platform</a>]<br/>
-<a href="util_lemmas.html#powerset">powerset</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#prev_le_next">prev_le_next</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="priority.html#Priority">Priority</a> [module, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html">priority</a> [library]<br/>
-<a href="priority.html#Priority.DM">Priority.DM</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.dm_is_valid">Priority.dm_is_valid</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDF">Priority.EDF</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDFDefs">Priority.EDFDefs</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDFDefs.arr_seq">Priority.EDFDefs.arr_seq</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDFDefs.job_deadline">Priority.EDFDefs.job_deadline</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.edf_valid_policy">Priority.edf_valid_policy</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.edf_jlfp">Priority.edf_jlfp</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_jlfp">Priority.fp_is_jlfp</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_to_jldp">Priority.fp_to_jldp</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_total">Priority.fp_is_total</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_transitive">Priority.fp_is_transitive</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_reflexive">Priority.fp_is_reflexive</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_policy">Priority.fp_policy</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP">Priority.GeneralizeFP</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.arr_seq">Priority.GeneralizeFP.arr_seq</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.job_task">Priority.GeneralizeFP.job_task</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.num_cpus">Priority.GeneralizeFP.num_cpus</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.is_jlfp_policy">Priority.is_jlfp_policy</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jldp_policy">Priority.jldp_policy</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs">Priority.JLFPDefs</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs.is_higher_priority">Priority.JLFPDefs.is_higher_priority</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs.job_task">Priority.JLFPDefs.job_task</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_total">Priority.jlfp_is_total</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_transitive">Priority.jlfp_is_transitive</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_reflexive">Priority.jlfp_is_reflexive</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs">Priority.PriorityDefs</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.arr_seq">Priority.PriorityDefs.arr_seq</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.sporadic_task">Priority.PriorityDefs.sporadic_task</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidFPPolicy">Priority.PriorityDefs.ValidFPPolicy</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidFPPolicy.is_higher_priority">Priority.PriorityDefs.ValidFPPolicy.is_higher_priority</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy">Priority.PriorityDefs.ValidJLFPPolicy</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority">Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic">Priority.RateDeadlineMonotonic</a> [section, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic.task_deadline">Priority.RateDeadlineMonotonic.task_deadline</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic.task_period">Priority.RateDeadlineMonotonic.task_period</a> [variable, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RM">Priority.RM</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.rm_is_valid">Priority.rm_is_valid</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_fp_is_valid_jldp">Priority.valid_fp_is_valid_jldp</a> [lemma, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_fp_policy">Priority.valid_fp_policy</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_jldp_policy">Priority.valid_jldp_policy</a> [definition, in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="global_R"></a><h2>R </h2>
-<a href="Vbase.html#Reflect">Reflect</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#reflect">reflect</a> [inductive, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives">ReflectConnectives</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b1">ReflectConnectives.b1</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b2">ReflectConnectives.b2</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b3">ReflectConnectives.b3</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b4">ReflectConnectives.b4</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b5">ReflectConnectives.b5</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore">ReflectCore</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.b">ReflectCore.b</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.c">ReflectCore.c</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.Hb">ReflectCore.Hb</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.P">ReflectCore.P</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.Q">ReflectCore.Q</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectF">ReflectF</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore">ReflectNegCore</a> [section, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.b">ReflectNegCore.b</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.c">ReflectNegCore.c</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.Hb">ReflectNegCore.Hb</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.P">ReflectNegCore.P</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.Q">ReflectNegCore.Q</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectT">ReflectT</a> [constructor, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.b">Reflect.b</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.b'">Reflect.b'</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.c">Reflect.c</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.P">Reflect.P</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Pb">Reflect.Pb</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Pb'">Reflect.Pb'</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Q">Reflect.Q</a> [variable, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="response_time.html#ResponseTime">ResponseTime</a> [module, in <a href="response_time.html">response_time</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF">ResponseTimeAnalysisEDF</a> [module, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_cirinei_response_time_bound_edf">ResponseTimeAnalysisEDF.bertogna_cirinei_response_time_bound_edf</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_exists_task_that_exceeds_bound">ResponseTimeAnalysisEDF.bertogna_edf_exists_task_that_exceeds_bound</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_sum_exceeds_total_interference">ResponseTimeAnalysisEDF.bertogna_edf_sum_exceeds_total_interference</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_minimum_exceeds_interference">ResponseTimeAnalysisEDF.bertogna_edf_minimum_exceeds_interference</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_helper_lemma">ResponseTimeAnalysisEDF.bertogna_edf_helper_lemma</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_all_cpus_busy">ResponseTimeAnalysisEDF.bertogna_edf_all_cpus_busy</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_too_much_interference">ResponseTimeAnalysisEDF.bertogna_edf_too_much_interference</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_specific_bound_holds">ResponseTimeAnalysisEDF.bertogna_edf_specific_bound_holds</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_workload_bounds_interference">ResponseTimeAnalysisEDF.bertogna_edf_workload_bounds_interference</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_R_other_ge_cost">ResponseTimeAnalysisEDF.bertogna_edf_R_other_ge_cost</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_tsk_other_in_ts">ResponseTimeAnalysisEDF.bertogna_edf_tsk_other_in_ts</a> [lemma, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf">ResponseTimeAnalysisEDF.interference_bound_edf</a> [definition, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound">ResponseTimeAnalysisEDF.ResponseTimeBound</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.all_jobs_from_taskset">ResponseTimeAnalysisEDF.ResponseTimeBound.all_jobs_from_taskset</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_ts_is_a_set">ResponseTimeAnalysisEDF.ResponseTimeBound.H_ts_is_a_set</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisEDF.ResponseTimeBound.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_tasks_miss_no_deadlines">ResponseTimeAnalysisEDF.ResponseTimeBound.H_tasks_miss_no_deadlines</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_response_time_is_fixed_point">ResponseTimeAnalysisEDF.ResponseTimeBound.H_response_time_is_fixed_point</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_rt_bounds_contains_all_tasks">ResponseTimeAnalysisEDF.ResponseTimeBound.H_rt_bounds_contains_all_tasks</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisEDF.ResponseTimeBound.H_restricted_deadlines</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_task_parameters</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_intra_task_parallelism">ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_intra_task_parallelism</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisEDF.ResponseTimeBound.H_at_least_one_cpu</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_parallelism</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisEDF.ResponseTimeBound.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_jobs_must_arrive_to_execute">ResponseTimeAnalysisEDF.ResponseTimeBound.H_jobs_must_arrive_to_execute</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_job_parameters</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisEDF.ResponseTimeBound.H_sporadic_tasks</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.I">ResponseTimeAnalysisEDF.ResponseTimeBound.I</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task">ResponseTimeAnalysisEDF.ResponseTimeBound.job_task</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline">ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost">ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_all_previous_jobs_completed_on_time">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_all_previous_jobs_completed_on_time</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_j_not_completed">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_j_not_completed</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_job_of_tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_job_of_tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_tsk_R_in_rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_tsk_R_in_rt_bounds</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.H_tsk_R_in_rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.H_tsk_R_in_rt_bounds</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus">ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by">ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched">ResponseTimeAnalysisEDF.ResponseTimeBound.sched</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline">ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period">ResponseTimeAnalysisEDF.ResponseTimeBound.task_period</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost">ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts">ResponseTimeAnalysisEDF.ResponseTimeBound.ts</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.delta">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.delta</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask</a> [section, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk</a> [variable, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.total_interference_bound_edf">ResponseTimeAnalysisEDF.total_interference_bound_edf</a> [definition, in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP">ResponseTimeAnalysisFP</a> [module, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_cirinei_response_time_bound_fp">ResponseTimeAnalysisFP.bertogna_cirinei_response_time_bound_fp</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_exists_task_that_exceeds_bound">ResponseTimeAnalysisFP.bertogna_fp_exists_task_that_exceeds_bound</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_sum_exceeds_total_interference">ResponseTimeAnalysisFP.bertogna_fp_sum_exceeds_total_interference</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_minimum_exceeds_interference">ResponseTimeAnalysisFP.bertogna_fp_minimum_exceeds_interference</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_helper_lemma">ResponseTimeAnalysisFP.bertogna_fp_helper_lemma</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_all_cpus_busy">ResponseTimeAnalysisFP.bertogna_fp_all_cpus_busy</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_too_much_interference">ResponseTimeAnalysisFP.bertogna_fp_too_much_interference</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_workload_bounds_interference">ResponseTimeAnalysisFP.bertogna_fp_workload_bounds_interference</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_tsk_other_interferes">ResponseTimeAnalysisFP.bertogna_fp_tsk_other_interferes</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_tsk_other_in_ts">ResponseTimeAnalysisFP.bertogna_fp_tsk_other_in_ts</a> [lemma, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP">ResponseTimeAnalysisFP.InterferenceBoundFP</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.delta">ResponseTimeAnalysisFP.InterferenceBoundFP.delta</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev">ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time">ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_deadline">ResponseTimeAnalysisFP.InterferenceBoundFP.task_deadline</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_period">ResponseTimeAnalysisFP.InterferenceBoundFP.task_period</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost">ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.tsk">ResponseTimeAnalysisFP.InterferenceBoundFP.tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.interference_bound_fp">ResponseTimeAnalysisFP.interference_bound_fp</a> [definition, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound">ResponseTimeAnalysisFP.ResponseTimeBound</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds">ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_no_larger_than_deadline</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_recurrence_holds">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_recurrence_holds</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisFP.ResponseTimeBound.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisFP.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_bounds_ge_cost">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_bounds_ge_cost</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisFP.ResponseTimeBound.H_hp_bounds_has_interfering_tasks</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisFP.ResponseTimeBound.H_restricted_deadlines</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_task_parameters</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisFP.ResponseTimeBound.H_at_least_one_cpu</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisFP.ResponseTimeBound.H_no_parallelism</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisFP.ResponseTimeBound.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_jobs_must_arrive_to_execute">ResponseTimeAnalysisFP.ResponseTimeBound.H_jobs_must_arrive_to_execute</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_job_parameters</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisFP.ResponseTimeBound.H_sporadic_tasks</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound">ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task">ResponseTimeAnalysisFP.ResponseTimeBound.job_task</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost">ResponseTimeAnalysisFP.ResponseTimeBound.job_cost</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_j_not_completed">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_j_not_completed</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_job_of_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_job_of_tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks</a> [section, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus">ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R">ResponseTimeAnalysisFP.ResponseTimeBound.R</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched">ResponseTimeAnalysisFP.ResponseTimeBound.sched</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_in_ts">ResponseTimeAnalysisFP.ResponseTimeBound.task_in_ts</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period">ResponseTimeAnalysisFP.ResponseTimeBound.task_period</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost">ResponseTimeAnalysisFP.ResponseTimeBound.task_cost</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts">ResponseTimeAnalysisFP.ResponseTimeBound.ts</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk">ResponseTimeAnalysisFP.ResponseTimeBound.tsk</a> [variable, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp">ResponseTimeAnalysisFP.total_interference_bound_fp</a> [definition, in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan">ResponseTimeAnalysisGuan</a> [module, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.guan_response_time_bound_fp">ResponseTimeAnalysisGuan.guan_response_time_bound_fp</a> [lemma, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.guan_interference_bound">ResponseTimeAnalysisGuan.guan_interference_bound</a> [definition, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan">ResponseTimeAnalysisGuan.InterferenceBoundGuan</a> [section, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.delta">ResponseTimeAnalysisGuan.InterferenceBoundGuan.delta</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.higher_eq_priority">ResponseTimeAnalysisGuan.InterferenceBoundGuan.higher_eq_priority</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry</a> [section, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.R_other">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.R_other</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_other">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_other</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_R">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_R</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.num_cpus">ResponseTimeAnalysisGuan.InterferenceBoundGuan.num_cpus</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.R_prev">ResponseTimeAnalysisGuan.InterferenceBoundGuan.R_prev</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition</a> [section, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.all_combinations">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.all_combinations</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.interfering_tasks">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.interfering_tasks</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_with_response_time">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_with_response_time</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_deadline">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_deadline</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_period">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_period</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_cost">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_cost</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.tsk">ResponseTimeAnalysisGuan.InterferenceBoundGuan.tsk</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.interference_bound_CI">ResponseTimeAnalysisGuan.interference_bound_CI</a> [definition, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.interference_bound_NC">ResponseTimeAnalysisGuan.interference_bound_NC</a> [definition, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan</a> [section, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.higher_eq_priority">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.higher_eq_priority</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.hp_bounds">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.hp_bounds</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_no_larger_than_deadline</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_recurrence_holds">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_recurrence_holds</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_global_scheduling_invariant">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_global_scheduling_invariant</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_interfering_tasks_miss_no_deadlines</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_bounds_ge_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_bounds_ge_cost</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_of_interfering_tasks_is_known</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_hp_bounds_has_interfering_tasks</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_restricted_deadlines">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_restricted_deadlines</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_task_parameters">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_task_parameters</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_at_least_one_cpu">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_at_least_one_cpu</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_no_parallelism">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_no_parallelism</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_completed_jobs_dont_execute">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_completed_jobs_dont_execute</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_jobs_execute_after_jitter">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_jobs_execute_after_jitter</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_job_parameters">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_job_parameters</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_sporadic_tasks">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_sporadic_tasks</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.I">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.I</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.interferes_with_tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.interferes_with_tsk</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.is_response_time_bound">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.is_response_time_bound</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_task">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_task</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_deadline</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_cost</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.no_deadline_is_missed_by_tsk</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.num_cpus">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.num_cpus</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.R">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.R</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.sched">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.sched</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_with_response_time">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_with_response_time</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_in_ts">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_in_ts</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_deadline</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_period">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_period</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_cost</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.ts">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.ts</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.tsk</a> [variable, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.valid_NC_CI_partitions">ResponseTimeAnalysisGuan.valid_NC_CI_partitions</a> [definition, in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter">ResponseTimeAnalysisJitter</a> [module, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.bertogna_cirinei_response_time_bound_fp_with_jitter">ResponseTimeAnalysisJitter.bertogna_cirinei_response_time_bound_fp_with_jitter</a> [lemma, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter">ResponseTimeAnalysisJitter.InterferenceBoundJitter</a> [section, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.delta">ResponseTimeAnalysisJitter.InterferenceBoundJitter.delta</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP">ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP</a> [section, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP.higher_eq_priority">ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP.higher_eq_priority</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP">ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP</a> [section, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP.is_interfering_task_jlfp">ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP.is_interfering_task_jlfp</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask</a> [section, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.R_other">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.R_other</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_other">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_other</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_R">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_R</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.R_prev">ResponseTimeAnalysisJitter.InterferenceBoundJitter.R_prev</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_with_response_time">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_with_response_time</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_jitter">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_jitter</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_deadline">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_deadline</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_period">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_period</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_cost">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_cost</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.tsk">ResponseTimeAnalysisJitter.InterferenceBoundJitter.tsk</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.interference_bound_jitter">ResponseTimeAnalysisJitter.interference_bound_jitter</a> [definition, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.is_interfering_task_fp">ResponseTimeAnalysisJitter.is_interfering_task_fp</a> [definition, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound">ResponseTimeAnalysisJitter.ResponseTimeBound</a> [section, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisJitter.ResponseTimeBound.higher_eq_priority</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.hp_bounds">ResponseTimeAnalysisJitter.ResponseTimeBound.hp_bounds</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_no_larger_than_deadline</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_recurrence_holds">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_recurrence_holds</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisJitter.ResponseTimeBound.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisJitter.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_bounds_ge_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_bounds_ge_cost</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisJitter.ResponseTimeBound.H_hp_bounds_has_interfering_tasks</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisJitter.ResponseTimeBound.H_restricted_deadlines</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_task_parameters</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisJitter.ResponseTimeBound.H_at_least_one_cpu</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisJitter.ResponseTimeBound.H_no_parallelism</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisJitter.ResponseTimeBound.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_jobs_execute_after_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.H_jobs_execute_after_jitter</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_job_parameters</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisJitter.ResponseTimeBound.H_sporadic_tasks</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.I">ResponseTimeAnalysisJitter.ResponseTimeBound.I</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.interferes_with_tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.interferes_with_tsk</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.is_response_time_bound">ResponseTimeAnalysisJitter.ResponseTimeBound.is_response_time_bound</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.job_jitter</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_task">ResponseTimeAnalysisJitter.ResponseTimeBound.job_task</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.job_deadline</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.job_cost</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.num_cpus">ResponseTimeAnalysisJitter.ResponseTimeBound.num_cpus</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.R">ResponseTimeAnalysisJitter.ResponseTimeBound.R</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.R'">ResponseTimeAnalysisJitter.ResponseTimeBound.R'</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.sched">ResponseTimeAnalysisJitter.ResponseTimeBound.sched</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisJitter.ResponseTimeBound.task_with_response_time</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_in_ts">ResponseTimeAnalysisJitter.ResponseTimeBound.task_in_ts</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.task_jitter</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.task_deadline</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_period">ResponseTimeAnalysisJitter.ResponseTimeBound.task_period</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.task_cost</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.ts">ResponseTimeAnalysisJitter.ResponseTimeBound.ts</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.tsk</a> [variable, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.total_interference_bound_jlfp_jitter">ResponseTimeAnalysisJitter.total_interference_bound_jlfp_jitter</a> [definition, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.total_interference_bound_fp_jitter">ResponseTimeAnalysisJitter.total_interference_bound_fp_jitter</a> [definition, in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF">ResponseTimeIterationEDF</a> [module, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.all_le_transitive">ResponseTimeIterationEDF.all_le_transitive</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.all_le_reflexive">ResponseTimeIterationEDF.all_le_reflexive</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis">ResponseTimeIterationEDF.Analysis</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence">ResponseTimeIterationEDF.Analysis.Convergence</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le">ResponseTimeIterationEDF.Analysis.Convergence.all_le</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_keeps_diverging">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_keeps_diverging</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_at_least_one_task">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_at_least_one_task</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f">ResponseTimeIterationEDF.Analysis.Convergence.f</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.H_valid_task_parameters">ResponseTimeIterationEDF.Analysis.Convergence.H_valid_task_parameters</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.one_lt">ResponseTimeIterationEDF.Analysis.Convergence.one_lt</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties">ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts">ResponseTimeIterationEDF.Analysis.Convergence.ts</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.I">ResponseTimeIterationEDF.Analysis.I</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state">ResponseTimeIterationEDF.Analysis.initial_state</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task">ResponseTimeIterationEDF.Analysis.job_task</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline">ResponseTimeIterationEDF.Analysis.job_deadline</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost">ResponseTimeIterationEDF.Analysis.job_cost</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof">ResponseTimeIterationEDF.Analysis.MainProof</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority">ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_test_succeeds">ResponseTimeIterationEDF.Analysis.MainProof.H_test_succeeds</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_global_scheduling_invariant">ResponseTimeIterationEDF.Analysis.MainProof.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_no_intra_task_parallelism">ResponseTimeIterationEDF.Analysis.MainProof.H_no_intra_task_parallelism</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_no_parallelism">ResponseTimeIterationEDF.Analysis.MainProof.H_no_parallelism</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_completed_jobs_dont_execute">ResponseTimeIterationEDF.Analysis.MainProof.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_jobs_must_arrive_to_execute">ResponseTimeIterationEDF.Analysis.MainProof.H_jobs_must_arrive_to_execute</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_at_least_one_cpu">ResponseTimeIterationEDF.Analysis.MainProof.H_at_least_one_cpu</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_sporadic_tasks">ResponseTimeIterationEDF.Analysis.MainProof.H_sporadic_tasks</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_valid_job_parameters">ResponseTimeIterationEDF.Analysis.MainProof.H_valid_job_parameters</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_all_jobs_from_taskset">ResponseTimeIterationEDF.Analysis.MainProof.H_all_jobs_from_taskset</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_restricted_deadlines">ResponseTimeIterationEDF.Analysis.MainProof.H_restricted_deadlines</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_valid_task_parameters">ResponseTimeIterationEDF.Analysis.MainProof.H_valid_task_parameters</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_ts_is_a_set">ResponseTimeIterationEDF.Analysis.MainProof.H_ts_is_a_set</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched">ResponseTimeIterationEDF.Analysis.MainProof.sched</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts">ResponseTimeIterationEDF.Analysis.MainProof.ts</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps">ResponseTimeIterationEDF.Analysis.max_steps</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_cost_le_rt_bound">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_cost_le_rt_bound</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_response_time_monotonic">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_response_time_monotonic</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_delta_monotonic">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_delta_monotonic</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_period_positive">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_period_positive</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus">ResponseTimeIterationEDF.Analysis.num_cpus</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.SimpleLemmas">ResponseTimeIterationEDF.Analysis.SimpleLemmas</a> [section, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time">ResponseTimeIterationEDF.Analysis.task_with_response_time</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline">ResponseTimeIterationEDF.Analysis.task_deadline</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period">ResponseTimeIterationEDF.Analysis.task_period</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost">ResponseTimeIterationEDF.Analysis.task_cost</a> [variable, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_rt_grows_too_much">ResponseTimeIterationEDF.bertogna_edf_comp_rt_grows_too_much</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_increases">ResponseTimeIterationEDF.bertogna_edf_comp_f_increases</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_early">ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_early</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_with_no_tasks">ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_with_no_tasks</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_monotonic">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_monotonic</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_order">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_order</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_minimum">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_minimum</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_analysis_yields_response_time_bounds">ResponseTimeIterationEDF.edf_analysis_yields_response_time_bounds</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_converges">ResponseTimeIterationEDF.edf_claimed_bounds_converges</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_converges_helper">ResponseTimeIterationEDF.edf_claimed_bounds_converges_helper</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_has_R_for_every_task">ResponseTimeIterationEDF.edf_claimed_bounds_has_R_for_every_task</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_le_deadline">ResponseTimeIterationEDF.edf_claimed_bounds_le_deadline</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_ge_cost">ResponseTimeIterationEDF.edf_claimed_bounds_ge_cost</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_size">ResponseTimeIterationEDF.edf_claimed_bounds_size</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_iteration">ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_iteration</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_update_bound">ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_update_bound</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_schedulable">ResponseTimeIterationEDF.edf_schedulable</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds">ResponseTimeIterationEDF.edf_claimed_bounds</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration">ResponseTimeIterationEDF.edf_rta_iteration</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_response_time_bound">ResponseTimeIterationEDF.edf_response_time_bound</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.interference_bound_edf_monotonic">ResponseTimeIterationEDF.interference_bound_edf_monotonic</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.jobs_schedulable_by_edf_rta">ResponseTimeIterationEDF.jobs_schedulable_by_edf_rta</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_job">ResponseTimeIterationEDF.no_deadline_missed_by_job</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_task">ResponseTimeIterationEDF.no_deadline_missed_by_task</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.R_le_deadline">ResponseTimeIterationEDF.R_le_deadline</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.taskset_schedulable_by_edf_rta">ResponseTimeIterationEDF.taskset_schedulable_by_edf_rta</a> [lemma, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.update_bound">ResponseTimeIterationEDF.update_bound</a> [definition, in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP">ResponseTimeIterationFP</a> [module, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan">ResponseTimeIterationFPGuan</a> [module, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis">ResponseTimeIterationFPGuan.Analysis</a> [section, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.AuxiliaryLemmas">ResponseTimeIterationFPGuan.Analysis.AuxiliaryLemmas</a> [section, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.higher_eq_priority">ResponseTimeIterationFPGuan.Analysis.higher_eq_priority</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.I">ResponseTimeIterationFPGuan.Analysis.I</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_task">ResponseTimeIterationFPGuan.Analysis.job_task</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_deadline">ResponseTimeIterationFPGuan.Analysis.job_deadline</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_cost">ResponseTimeIterationFPGuan.Analysis.job_cost</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.max_steps">ResponseTimeIterationFPGuan.Analysis.max_steps</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.num_cpus">ResponseTimeIterationFPGuan.Analysis.num_cpus</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof">ResponseTimeIterationFPGuan.Analysis.Proof</a> [section, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.HelperLemma">ResponseTimeIterationFPGuan.Analysis.Proof.HelperLemma</a> [section, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_test_succeeds">ResponseTimeIterationFPGuan.Analysis.Proof.H_test_succeeds</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_global_scheduling_invariant">ResponseTimeIterationFPGuan.Analysis.Proof.H_global_scheduling_invariant</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_no_parallelism">ResponseTimeIterationFPGuan.Analysis.Proof.H_no_parallelism</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_completed_jobs_dont_execute">ResponseTimeIterationFPGuan.Analysis.Proof.H_completed_jobs_dont_execute</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_jobs_execute_after_jitter">ResponseTimeIterationFPGuan.Analysis.Proof.H_jobs_execute_after_jitter</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_at_least_one_cpu">ResponseTimeIterationFPGuan.Analysis.Proof.H_at_least_one_cpu</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_sporadic_tasks">ResponseTimeIterationFPGuan.Analysis.Proof.H_sporadic_tasks</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_job_parameters">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_job_parameters</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_all_jobs_from_taskset">ResponseTimeIterationFPGuan.Analysis.Proof.H_all_jobs_from_taskset</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_sorted_ts">ResponseTimeIterationFPGuan.Analysis.Proof.H_sorted_ts</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_restricted_deadlines">ResponseTimeIterationFPGuan.Analysis.Proof.H_restricted_deadlines</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_task_parameters">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_task_parameters</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_ts_is_a_set">ResponseTimeIterationFPGuan.Analysis.Proof.H_ts_is_a_set</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_unique_priorities">ResponseTimeIterationFPGuan.Analysis.Proof.H_unique_priorities</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_policy">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_policy</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.sched">ResponseTimeIterationFPGuan.Analysis.Proof.sched</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.ts">ResponseTimeIterationFPGuan.Analysis.Proof.ts</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_with_response_time">ResponseTimeIterationFPGuan.Analysis.task_with_response_time</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_deadline">ResponseTimeIterationFPGuan.Analysis.task_deadline</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_period">ResponseTimeIterationFPGuan.Analysis.task_period</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_cost">ResponseTimeIterationFPGuan.Analysis.task_cost</a> [variable, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.guan_fp_schedulability_test_yields_response_time_bounds">ResponseTimeIterationFPGuan.guan_fp_schedulability_test_yields_response_time_bounds</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.guan_fp_schedulable">ResponseTimeIterationFPGuan.guan_fp_schedulable</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.jobs_with_jitter_schedulable_by_guan_fp_rta">ResponseTimeIterationFPGuan.jobs_with_jitter_schedulable_by_guan_fp_rta</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.no_deadline_missed_by_job">ResponseTimeIterationFPGuan.no_deadline_missed_by_job</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.no_deadline_missed_by_task">ResponseTimeIterationFPGuan.no_deadline_missed_by_task</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta_fold">ResponseTimeIterationFPGuan.per_task_rta_fold</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta_converges">ResponseTimeIterationFPGuan.per_task_rta_converges</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta">ResponseTimeIterationFPGuan.per_task_rta</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_has_response_time_bounds">ResponseTimeIterationFPGuan.R_list_has_response_time_bounds</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_unzip1">ResponseTimeIterationFPGuan.R_list_unzip1</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_non_empty">ResponseTimeIterationFPGuan.R_list_non_empty</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_ge_cost">ResponseTimeIterationFPGuan.R_list_ge_cost</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_le_deadline">ResponseTimeIterationFPGuan.R_list_le_deadline</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_response_time">ResponseTimeIterationFPGuan.R_list_rcons_response_time</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_task">ResponseTimeIterationFPGuan.R_list_rcons_task</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_prefix">ResponseTimeIterationFPGuan.R_list_rcons_prefix</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list">ResponseTimeIterationFPGuan.R_list</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_helper">ResponseTimeIterationFPGuan.R_list_helper</a> [definition, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.taskset_schedulable_by_guan_fp_rta">ResponseTimeIterationFPGuan.taskset_schedulable_by_guan_fp_rta</a> [lemma, in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter">ResponseTimeIterationFPWithJitter</a> [module, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis">ResponseTimeIterationFPWithJitter.Analysis</a> [section, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.AuxiliaryLemmas">ResponseTimeIterationFPWithJitter.Analysis.AuxiliaryLemmas</a> [section, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.higher_eq_priority">ResponseTimeIterationFPWithJitter.Analysis.higher_eq_priority</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.I">ResponseTimeIterationFPWithJitter.Analysis.I</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_jitter">ResponseTimeIterationFPWithJitter.Analysis.job_jitter</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_task">ResponseTimeIterationFPWithJitter.Analysis.job_task</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_deadline">ResponseTimeIterationFPWithJitter.Analysis.job_deadline</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_cost">ResponseTimeIterationFPWithJitter.Analysis.job_cost</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.max_steps">ResponseTimeIterationFPWithJitter.Analysis.max_steps</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.num_cpus">ResponseTimeIterationFPWithJitter.Analysis.num_cpus</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof">ResponseTimeIterationFPWithJitter.Analysis.Proof</a> [section, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.HelperLemma">ResponseTimeIterationFPWithJitter.Analysis.Proof.HelperLemma</a> [section, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_test_succeeds">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_test_succeeds</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_global_scheduling_invariant">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_no_parallelism">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_no_parallelism</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_completed_jobs_dont_execute">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_jobs_execute_after_jitter">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_jobs_execute_after_jitter</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_at_least_one_cpu">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_at_least_one_cpu</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sporadic_tasks">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sporadic_tasks</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_job_parameters">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_job_parameters</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_all_jobs_from_taskset">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_all_jobs_from_taskset</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sorted_ts">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sorted_ts</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_restricted_deadlines">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_restricted_deadlines</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_task_parameters">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_task_parameters</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_ts_is_a_set">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_ts_is_a_set</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_unique_priorities">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_unique_priorities</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_policy">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_policy</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.sched">ResponseTimeIterationFPWithJitter.Analysis.Proof.sched</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.ts">ResponseTimeIterationFPWithJitter.Analysis.Proof.ts</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_with_response_time">ResponseTimeIterationFPWithJitter.Analysis.task_with_response_time</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_jitter">ResponseTimeIterationFPWithJitter.Analysis.task_jitter</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_deadline">ResponseTimeIterationFPWithJitter.Analysis.task_deadline</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_period">ResponseTimeIterationFPWithJitter.Analysis.task_period</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_cost">ResponseTimeIterationFPWithJitter.Analysis.task_cost</a> [variable, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.fp_schedulability_test_with_jitter_yields_response_time_bounds">ResponseTimeIterationFPWithJitter.fp_schedulability_test_with_jitter_yields_response_time_bounds</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.fp_schedulable">ResponseTimeIterationFPWithJitter.fp_schedulable</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.jobs_with_jitter_schedulable_by_fp_rta">ResponseTimeIterationFPWithJitter.jobs_with_jitter_schedulable_by_fp_rta</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.no_deadline_missed_by_job">ResponseTimeIterationFPWithJitter.no_deadline_missed_by_job</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.no_deadline_missed_by_task">ResponseTimeIterationFPWithJitter.no_deadline_missed_by_task</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta_fold">ResponseTimeIterationFPWithJitter.per_task_rta_fold</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta_converges">ResponseTimeIterationFPWithJitter.per_task_rta_converges</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta">ResponseTimeIterationFPWithJitter.per_task_rta</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_has_response_time_bounds">ResponseTimeIterationFPWithJitter.R_list_has_response_time_bounds</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_unzip1">ResponseTimeIterationFPWithJitter.R_list_unzip1</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_non_empty">ResponseTimeIterationFPWithJitter.R_list_non_empty</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_ge_cost">ResponseTimeIterationFPWithJitter.R_list_ge_cost</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_le_deadline">ResponseTimeIterationFPWithJitter.R_list_le_deadline</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_response_time">ResponseTimeIterationFPWithJitter.R_list_rcons_response_time</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_task">ResponseTimeIterationFPWithJitter.R_list_rcons_task</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_prefix">ResponseTimeIterationFPWithJitter.R_list_rcons_prefix</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list">ResponseTimeIterationFPWithJitter.R_list</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_helper">ResponseTimeIterationFPWithJitter.R_list_helper</a> [definition, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.taskset_with_jitter_schedulable_by_fp_rta">ResponseTimeIterationFPWithJitter.taskset_with_jitter_schedulable_by_fp_rta</a> [lemma, in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis">ResponseTimeIterationFP.Analysis</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence">ResponseTimeIterationFP.Analysis.Convergence</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction">ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction.H_keeps_diverging">ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction.H_keeps_diverging</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f">ResponseTimeIterationFP.Analysis.Convergence.f</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_no_larger_than_deadline">ResponseTimeIterationFP.Analysis.Convergence.H_no_larger_than_deadline</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_valid_task_parameters">ResponseTimeIterationFP.Analysis.Convergence.H_valid_task_parameters</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_test_succeeds">ResponseTimeIterationFP.Analysis.Convergence.H_test_succeeds</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.rt_bounds">ResponseTimeIterationFP.Analysis.Convergence.rt_bounds</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk">ResponseTimeIterationFP.Analysis.Convergence.tsk</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.ts_hp">ResponseTimeIterationFP.Analysis.Convergence.ts_hp</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority">ResponseTimeIterationFP.Analysis.higher_priority</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks">ResponseTimeIterationFP.Analysis.HighPriorityTasks</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds">ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_analysis_succeeds">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_analysis_succeeds</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_priority_transitive">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_priority_transitive</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_sorted">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_sorted</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_a_set">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_a_set</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.R">ResponseTimeIterationFP.Analysis.HighPriorityTasks.R</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk">ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp">ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task">ResponseTimeIterationFP.Analysis.job_task</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_deadline">ResponseTimeIterationFP.Analysis.job_deadline</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost">ResponseTimeIterationFP.Analysis.job_cost</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof">ResponseTimeIterationFP.Analysis.MainProof</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_test_succeeds">ResponseTimeIterationFP.Analysis.MainProof.H_test_succeeds</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_global_scheduling_invariant">ResponseTimeIterationFP.Analysis.MainProof.H_global_scheduling_invariant</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_no_parallelism">ResponseTimeIterationFP.Analysis.MainProof.H_no_parallelism</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_completed_jobs_dont_execute">ResponseTimeIterationFP.Analysis.MainProof.H_completed_jobs_dont_execute</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_jobs_must_arrive_to_execute">ResponseTimeIterationFP.Analysis.MainProof.H_jobs_must_arrive_to_execute</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_at_least_one_cpu">ResponseTimeIterationFP.Analysis.MainProof.H_at_least_one_cpu</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_sporadic_tasks">ResponseTimeIterationFP.Analysis.MainProof.H_sporadic_tasks</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_valid_job_parameters">ResponseTimeIterationFP.Analysis.MainProof.H_valid_job_parameters</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_all_jobs_from_taskset">ResponseTimeIterationFP.Analysis.MainProof.H_all_jobs_from_taskset</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_sorted_ts">ResponseTimeIterationFP.Analysis.MainProof.H_sorted_ts</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_restricted_deadlines">ResponseTimeIterationFP.Analysis.MainProof.H_restricted_deadlines</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_valid_task_parameters">ResponseTimeIterationFP.Analysis.MainProof.H_valid_task_parameters</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_ts_is_a_set">ResponseTimeIterationFP.Analysis.MainProof.H_ts_is_a_set</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_total">ResponseTimeIterationFP.Analysis.MainProof.H_total</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_unique_priorities">ResponseTimeIterationFP.Analysis.MainProof.H_unique_priorities</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_transitive">ResponseTimeIterationFP.Analysis.MainProof.H_transitive</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job">ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task">ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by">ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched">ResponseTimeIterationFP.Analysis.MainProof.sched</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts">ResponseTimeIterationFP.Analysis.MainProof.ts</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus">ResponseTimeIterationFP.Analysis.num_cpus</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.SimpleLemmas">ResponseTimeIterationFP.Analysis.SimpleLemmas</a> [section, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_with_response_time">ResponseTimeIterationFP.Analysis.task_with_response_time</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline">ResponseTimeIterationFP.Analysis.task_deadline</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period">ResponseTimeIterationFP.Analysis.task_period</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost">ResponseTimeIterationFP.Analysis.task_cost</a> [variable, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_rt_grows_too_much">ResponseTimeIterationFP.bertogna_fp_comp_rt_grows_too_much</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_increases">ResponseTimeIterationFP.bertogna_fp_comp_f_increases</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_converges_early">ResponseTimeIterationFP.bertogna_fp_comp_f_converges_early</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_monotonic">ResponseTimeIterationFP.bertogna_fp_comp_f_monotonic</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_analysis_yields_response_time_bounds">ResponseTimeIterationFP.fp_analysis_yields_response_time_bounds</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_unzip1">ResponseTimeIterationFP.fp_claimed_bounds_unzip1</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_non_empty">ResponseTimeIterationFP.fp_claimed_bounds_non_empty</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_ge_cost">ResponseTimeIterationFP.fp_claimed_bounds_ge_cost</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_le_deadline">ResponseTimeIterationFP.fp_claimed_bounds_le_deadline</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_response_time">ResponseTimeIterationFP.fp_claimed_bounds_rcons_response_time</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_task">ResponseTimeIterationFP.fp_claimed_bounds_rcons_task</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_prefix">ResponseTimeIterationFP.fp_claimed_bounds_rcons_prefix</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_schedulable">ResponseTimeIterationFP.fp_schedulable</a> [definition, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds">ResponseTimeIterationFP.fp_claimed_bounds</a> [definition, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_bound_of_task">ResponseTimeIterationFP.fp_bound_of_task</a> [definition, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.jobs_schedulable_by_fp_rta">ResponseTimeIterationFP.jobs_schedulable_by_fp_rta</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps">ResponseTimeIterationFP.max_steps</a> [definition, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta_converges">ResponseTimeIterationFP.per_task_rta_converges</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta_fold">ResponseTimeIterationFP.per_task_rta_fold</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta">ResponseTimeIterationFP.per_task_rta</a> [definition, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.taskset_schedulable_by_fp_rta">ResponseTimeIterationFP.taskset_schedulable_by_fp_rta</a> [lemma, in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas">ResponseTime.BasicLemmas</a> [section, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs">ResponseTime.BasicLemmas.AllJobs</a> [section, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.H_job_of_task">ResponseTime.BasicLemmas.AllJobs.H_job_of_task</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j">ResponseTime.BasicLemmas.AllJobs.j</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.R">ResponseTime.BasicLemmas.AllJobs.R</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.response_time_bound">ResponseTime.BasicLemmas.AllJobs.response_time_bound</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.tsk">ResponseTime.BasicLemmas.AllJobs.tsk</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.H_completed_jobs_dont_execute">ResponseTime.BasicLemmas.H_completed_jobs_dont_execute</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_has_completed_by">ResponseTime.BasicLemmas.job_has_completed_by</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_task">ResponseTime.BasicLemmas.job_task</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_cost">ResponseTime.BasicLemmas.job_cost</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.sched">ResponseTime.BasicLemmas.sched</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob">ResponseTime.BasicLemmas.SpecificJob</a> [section, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j">ResponseTime.BasicLemmas.SpecificJob.j</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.R">ResponseTime.BasicLemmas.SpecificJob.R</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.response_time_bound">ResponseTime.BasicLemmas.SpecificJob.response_time_bound</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.cumulative_service_after_task_rt_zero">ResponseTime.cumulative_service_after_task_rt_zero</a> [lemma, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.cumulative_service_after_job_rt_zero">ResponseTime.cumulative_service_after_job_rt_zero</a> [lemma, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.is_response_time_bound_of_task">ResponseTime.is_response_time_bound_of_task</a> [definition, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound">ResponseTime.ResponseTimeBound</a> [section, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_has_completed_by">ResponseTime.ResponseTimeBound.job_has_completed_by</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_task">ResponseTime.ResponseTimeBound.job_task</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_cost">ResponseTime.ResponseTimeBound.job_cost</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.R">ResponseTime.ResponseTimeBound.R</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.sched">ResponseTime.ResponseTimeBound.sched</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.tsk">ResponseTime.ResponseTimeBound.tsk</a> [variable, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.service_after_task_rt_zero">ResponseTime.service_after_task_rt_zero</a> [lemma, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.service_after_job_rt_zero">ResponseTime.service_after_job_rt_zero</a> [lemma, in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html">response_time</a> [library]<br/>
-<a href="ExtraRelations.html#restr_eq_union">restr_eq_union</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_rel_trans">restr_rel_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_eq_rel">restr_eq_rel</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_rel">restr_rel</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_subset">restr_subset</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#reverse_sorted">reverse_sorted</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#revert_comp_relation">revert_comp_relation</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#rt_t_trans">rt_t_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="global_S"></a><h2>S </h2>
-<a href="Vbase.html#sameP">sameP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#same_relation_restr">same_relation_restr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_trans">same_relation_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_sym">same_relation_sym</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_refl">same_relation_refl</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="schedulability.html#Schedulability">Schedulability</a> [module, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html">schedulability</a> [library]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas">Schedulability.BasicLemmas</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs">Schedulability.BasicLemmas.AllJobs</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.H_valid_job">Schedulability.BasicLemmas.AllJobs.H_valid_job</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.H_job_of_task">Schedulability.BasicLemmas.AllJobs.H_job_of_task</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j">Schedulability.BasicLemmas.AllJobs.j</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.no_deadline_misses">Schedulability.BasicLemmas.AllJobs.no_deadline_misses</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk">Schedulability.BasicLemmas.AllJobs.tsk</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.H_completed_jobs_dont_execute">Schedulability.BasicLemmas.H_completed_jobs_dont_execute</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_task">Schedulability.BasicLemmas.job_task</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_deadline">Schedulability.BasicLemmas.job_deadline</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_cost">Schedulability.BasicLemmas.job_cost</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.sched">Schedulability.BasicLemmas.sched</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob">Schedulability.BasicLemmas.SpecificJob</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j">Schedulability.BasicLemmas.SpecificJob.j</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.no_deadline_miss">Schedulability.BasicLemmas.SpecificJob.no_deadline_miss</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_deadline">Schedulability.BasicLemmas.task_deadline</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_period">Schedulability.BasicLemmas.task_period</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_cost">Schedulability.BasicLemmas.task_cost</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.cumulative_service_after_task_deadline_zero">Schedulability.cumulative_service_after_task_deadline_zero</a> [lemma, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.cumulative_service_after_job_deadline_zero">Schedulability.cumulative_service_after_job_deadline_zero</a> [lemma, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.job_misses_no_deadline">Schedulability.job_misses_no_deadline</a> [definition, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs">Schedulability.SchedulableDefs</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.job_deadline">Schedulability.SchedulableDefs.job_deadline</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.job_cost">Schedulability.SchedulableDefs.job_cost</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs">Schedulability.SchedulableDefs.ScheduleOfJobs</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.j">Schedulability.SchedulableDefs.ScheduleOfJobs.j</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.sched">Schedulability.SchedulableDefs.ScheduleOfJobs.sched</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks">Schedulability.SchedulableDefs.ScheduleOfTasks</a> [section, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.job_task">Schedulability.SchedulableDefs.ScheduleOfTasks.job_task</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sched">Schedulability.SchedulableDefs.ScheduleOfTasks.sched</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.tsk">Schedulability.SchedulableDefs.ScheduleOfTasks.tsk</a> [variable, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.service_after_task_deadline_zero">Schedulability.service_after_task_deadline_zero</a> [lemma, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.service_after_job_deadline_zero">Schedulability.service_after_job_deadline_zero</a> [lemma, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.task_misses_no_deadline_before">Schedulability.task_misses_no_deadline_before</a> [definition, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.task_misses_no_deadline">Schedulability.task_misses_no_deadline</a> [definition, in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#Schedule">Schedule</a> [module, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html">schedule</a> [library]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask">ScheduleOfSporadicTask</a> [module, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas">ScheduleOfSporadicTask.BasicLemmas</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.H_job_of_task">ScheduleOfSporadicTask.BasicLemmas.H_job_of_task</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.j">ScheduleOfSporadicTask.BasicLemmas.j</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.jobs_dont_execute_after_completion">ScheduleOfSporadicTask.BasicLemmas.jobs_dont_execute_after_completion</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_task">ScheduleOfSporadicTask.BasicLemmas.job_task</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_deadline">ScheduleOfSporadicTask.BasicLemmas.job_deadline</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_cost">ScheduleOfSporadicTask.BasicLemmas.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sched">ScheduleOfSporadicTask.BasicLemmas.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_deadline">ScheduleOfSporadicTask.BasicLemmas.task_deadline</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_cost">ScheduleOfSporadicTask.BasicLemmas.task_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.tsk">ScheduleOfSporadicTask.BasicLemmas.tsk</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.valid_job">ScheduleOfSporadicTask.BasicLemmas.valid_job</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.cumulative_service_le_task_cost">ScheduleOfSporadicTask.cumulative_service_le_task_cost</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel">ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule">ScheduleOfSporadicTask.ValidSchedule</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_task">ScheduleOfSporadicTask.ValidSchedule.job_task</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_cost">ScheduleOfSporadicTask.ValidSchedule.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.sched">ScheduleOfSporadicTask.ValidSchedule.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter">ScheduleOfTaskWithJitter</a> [module, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter">ScheduleOfTaskWithJitter.ArrivalAfterJitter</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas">ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_task">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_task</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_cost">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched">ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.arrival_before_jitter">ScheduleOfTaskWithJitter.arrival_before_jitter</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.jobs_execute_after_jitter">ScheduleOfTaskWithJitter.jobs_execute_after_jitter</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.backlogged">Schedule.backlogged</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.carried_out">Schedule.carried_out</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.carried_in">Schedule.carried_in</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completed">Schedule.completed</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completed_jobs_dont_execute">Schedule.completed_jobs_dont_execute</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completion_monotonic">Schedule.completion_monotonic</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_before_job_arrival_zero">Schedule.cumulative_service_before_job_arrival_zero</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_le_job_cost">Schedule.cumulative_service_le_job_cost</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_le_delta">Schedule.cumulative_service_le_delta</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.is_idle">Schedule.is_idle</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_must_arrive_to_execute">Schedule.jobs_must_arrive_to_execute</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_dont_execute_in_parallel">Schedule.jobs_dont_execute_in_parallel</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_scheduled_between">Schedule.jobs_scheduled_between</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_scheduled_at">Schedule.jobs_scheduled_at</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.job_scheduled_during_interval">Schedule.job_scheduled_during_interval</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.not_scheduled_no_service">Schedule.not_scheduled_no_service</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.pending">Schedule.pending</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.processor">Schedule.processor</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.schedule">Schedule.schedule</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.scheduled">Schedule.scheduled</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef">Schedule.ScheduleDef</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef.arr_seq">Schedule.ScheduleDef.arr_seq</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef.num_cpus">Schedule.ScheduleDef.num_cpus</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs">Schedule.ScheduledJobs</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.j">Schedule.ScheduledJobs.j</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.job_cost">Schedule.ScheduledJobs.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.sched">Schedule.ScheduledJobs.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service">Schedule.service</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas">Schedule.ServiceLemmas</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Arrival">Schedule.ServiceLemmas.Arrival</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Arrival.H_jobs_must_arrive">Schedule.ServiceLemmas.Arrival.H_jobs_must_arrive</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Basic">Schedule.ServiceLemmas.Basic</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Completion">Schedule.ServiceLemmas.Completion</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Completion.H_completed_jobs">Schedule.ServiceLemmas.Completion.H_completed_jobs</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.j">Schedule.ServiceLemmas.j</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.job_cost">Schedule.ServiceLemmas.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.NoParallelism">Schedule.ServiceLemmas.NoParallelism</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.NoParallelism.no_parallelism">Schedule.ServiceLemmas.NoParallelism.no_parallelism</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.sched">Schedule.ServiceLemmas.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_before_arrival_eq_service_during">Schedule.service_before_arrival_eq_service_during</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_before_job_arrival_zero">Schedule.service_before_job_arrival_zero</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_at_most_one">Schedule.service_at_most_one</a> [lemma, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_during">Schedule.service_during</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_at">Schedule.service_at</a> [definition, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules">Schedule.ValidSchedules</a> [section, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules.job_cost">Schedule.ValidSchedules.job_cost</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules.sched">Schedule.ValidSchedules.sched</a> [variable, in <a href="schedule.html">schedule</a>]<br/>
-<a href="util_lemmas.html#size_bigcat_ord">size_bigcat_ord</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sorted_rcons_prefix">sorted_rcons_prefix</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="task.html#SporadicTask">SporadicTask</a> [module, in <a href="task.html">task</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival">SporadicTaskArrival</a> [module, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels">SporadicTaskArrival.ArrivalModels</a> [section, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.arr_seq">SporadicTaskArrival.ArrivalModels.arr_seq</a> [variable, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.job_task">SporadicTaskArrival.ArrivalModels.job_task</a> [variable, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.task_period">SporadicTaskArrival.ArrivalModels.task_period</a> [variable, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.sporadic_task_model">SporadicTaskArrival.sporadic_task_model</a> [definition, in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task.html#SporadicTaskset">SporadicTaskset</a> [module, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.arbitrary_deadline_model">SporadicTaskset.arbitrary_deadline_model</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.implicit_deadline_model">SporadicTaskset.implicit_deadline_model</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.restricted_deadline_model">SporadicTaskset.restricted_deadline_model</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs">SporadicTaskset.TasksetDefs</a> [section, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties">SporadicTaskset.TasksetDefs.TasksetProperties</a> [section, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task">SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline">SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_period">SporadicTaskset.TasksetDefs.TasksetProperties.task_period</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_cost">SporadicTaskset.TasksetDefs.TasksetProperties.task_cost</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.ts">SporadicTaskset.TasksetDefs.TasksetProperties.ts</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.taskset_of">SporadicTaskset.taskset_of</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.valid_sporadic_taskset">SporadicTaskset.valid_sporadic_taskset</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask">SporadicTask.BasicTask</a> [section, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_deadline">SporadicTask.BasicTask.task_deadline</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_period">SporadicTask.BasicTask.task_period</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_cost">SporadicTask.BasicTask.task_cost</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.ValidParameters">SporadicTask.BasicTask.ValidParameters</a> [section, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.ValidParameters.tsk">SporadicTask.BasicTask.ValidParameters.tsk</a> [variable, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.is_valid_sporadic_task">SporadicTask.is_valid_sporadic_task</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_le_period">SporadicTask.task_cost_le_period</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_le_deadline">SporadicTask.task_cost_le_deadline</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_deadline_positive">SporadicTask.task_deadline_positive</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_period_positive">SporadicTask.task_period_positive</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_positive">SporadicTask.task_cost_positive</a> [definition, in <a href="task.html">task</a>]<br/>
-<a href="ssromega.html">ssromega</a> [library]<br/>
-<a href="util_lemmas.html#strong_ind_lt">strong_ind_lt</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#strong_ind">strong_ind</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh1">subh1</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh2">subh2</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh3">subh3</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh4">subh4</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subndiv_eq_mod">subndiv_eq_mod</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_nat_eq0_nat">sum_nat_eq0_nat</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_diff">sum_diff</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_diff_monotonic">sum_diff_monotonic</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_T"></a><h2>T </h2>
-<a href="task.html">task</a> [library]<br/>
-<a href="task_arrival.html">task_arrival</a> [library]<br/>
-<a href="util_lemmas.html#telescoping_sum">telescoping_sum</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#total_immediate_unique">total_immediate_unique</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#total_over_seq">total_over_seq</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_inv">tot_ext_inv</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_irr">tot_ext_irr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_trans">tot_ext_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_extends">tot_ext_extends</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext">tot_ext</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#trans_irr_acyclic">trans_irr_acyclic</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#Triple">Triple</a> [section, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#triple_3rd">triple_3rd</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#triple_2nd">triple_2nd</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#triple_1st">triple_1st</a> [definition, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#Triple.p">Triple.p</a> [variable, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#t_rt_step">t_rt_step</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#t_step_rt">t_step_rt</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#t_rt_trans">t_rt_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="global_U"></a><h2>U </h2>
-<a href="ExtraRelations.html#undup">undup</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#union_restr">union_restr</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#upward_clos_trans">upward_clos_trans</a> [lemma, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#upward_closed">upward_closed</a> [definition, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html">util_lemmas</a> [library]<br/>
-<a href="util_divround.html">util_divround</a> [library]<br/>
-<br/><br/><a name="global_V"></a><h2>V </h2>
-<a href="Vbase.html">Vbase</a> [library]<br/>
-<a href="Vbase.html#vlib__beq_rewrite">vlib__beq_rewrite</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__eqb_split">vlib__eqb_split</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__norb_split">vlib__norb_split</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__orb_split">vlib__orb_split</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__nandb_split">vlib__nandb_split</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__andb_split">vlib__andb_split</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__negb_rewrite">vlib__negb_rewrite</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__internal_eqP">vlib__internal_eqP</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__not_false_is_true">vlib__not_false_is_true</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__true_is_true">vlib__true_is_true</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_W"></a><h2>W </h2>
-<a href="workload.html#Workload">Workload</a> [module, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html">workload</a> [library]<br/>
-<a href="workload_bound.html#WorkloadBound">WorkloadBound</a> [module, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan">WorkloadBoundGuan</a> [module, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry">WorkloadBoundGuan.BasicLemmasCarry</a> [section, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.period_positive">WorkloadBoundGuan.BasicLemmasCarry.period_positive</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.R">WorkloadBoundGuan.BasicLemmasCarry.R</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.task_period">WorkloadBoundGuan.BasicLemmasCarry.task_period</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.task_cost">WorkloadBoundGuan.BasicLemmasCarry.task_cost</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.tsk">WorkloadBoundGuan.BasicLemmasCarry.tsk</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.workload_bound_CI">WorkloadBoundGuan.BasicLemmasCarry.workload_bound_CI</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.workload_bound_NC">WorkloadBoundGuan.BasicLemmasCarry.workload_bound_NC</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.max_jobs_CI">WorkloadBoundGuan.max_jobs_CI</a> [definition, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.max_jobs_NC">WorkloadBoundGuan.max_jobs_NC</a> [definition, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound">WorkloadBoundGuan.ProofWorkloadBound</a> [section, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.arr_seq">WorkloadBoundGuan.ProofWorkloadBound.arr_seq</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.delta">WorkloadBoundGuan.ProofWorkloadBound.delta</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_response_time_bound">WorkloadBoundGuan.ProofWorkloadBound.H_response_time_bound</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_response_time_ge_cost">WorkloadBoundGuan.ProofWorkloadBound.H_response_time_ge_cost</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_no_deadline_misses_during_interval">WorkloadBoundGuan.ProofWorkloadBound.H_no_deadline_misses_during_interval</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_restricted_deadline">WorkloadBoundGuan.ProofWorkloadBound.H_restricted_deadline</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_valid_task_parameters">WorkloadBoundGuan.ProofWorkloadBound.H_valid_task_parameters</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_sporadic_tasks">WorkloadBoundGuan.ProofWorkloadBound.H_sporadic_tasks</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_no_parallelism">WorkloadBoundGuan.ProofWorkloadBound.H_no_parallelism</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_completed_jobs_dont_execute">WorkloadBoundGuan.ProofWorkloadBound.H_completed_jobs_dont_execute</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_jobs_must_arrive_to_execute">WorkloadBoundGuan.ProofWorkloadBound.H_jobs_must_arrive_to_execute</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_jobs_have_valid_parameters">WorkloadBoundGuan.ProofWorkloadBound.H_jobs_have_valid_parameters</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_has_completed_by">WorkloadBoundGuan.ProofWorkloadBound.job_has_completed_by</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_deadline">WorkloadBoundGuan.ProofWorkloadBound.job_deadline</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_task">WorkloadBoundGuan.ProofWorkloadBound.job_task</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_cost">WorkloadBoundGuan.ProofWorkloadBound.job_cost</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.no_deadline_misses_by">WorkloadBoundGuan.ProofWorkloadBound.no_deadline_misses_by</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.num_cpus">WorkloadBoundGuan.ProofWorkloadBound.num_cpus</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.R_tsk">WorkloadBoundGuan.ProofWorkloadBound.R_tsk</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.sched">WorkloadBoundGuan.ProofWorkloadBound.sched</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.schedule_of_platform">WorkloadBoundGuan.ProofWorkloadBound.schedule_of_platform</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.sched_of_platform">WorkloadBoundGuan.ProofWorkloadBound.sched_of_platform</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_deadline">WorkloadBoundGuan.ProofWorkloadBound.task_deadline</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_period">WorkloadBoundGuan.ProofWorkloadBound.task_period</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_cost">WorkloadBoundGuan.ProofWorkloadBound.task_cost</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.tsk">WorkloadBoundGuan.ProofWorkloadBound.tsk</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.t1">WorkloadBoundGuan.ProofWorkloadBound.t1</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.workload_of">WorkloadBoundGuan.ProofWorkloadBound.workload_of</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry">WorkloadBoundGuan.WorkloadBoundCarry</a> [section, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.delta">WorkloadBoundGuan.WorkloadBoundCarry.delta</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.e">WorkloadBoundGuan.WorkloadBoundCarry.e</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.p">WorkloadBoundGuan.WorkloadBoundCarry.p</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.R_tsk">WorkloadBoundGuan.WorkloadBoundCarry.R_tsk</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.task_period">WorkloadBoundGuan.WorkloadBoundCarry.task_period</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.task_cost">WorkloadBoundGuan.WorkloadBoundCarry.task_cost</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.tsk">WorkloadBoundGuan.WorkloadBoundCarry.tsk</a> [variable, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_CI_monotonic">WorkloadBoundGuan.W_CI_monotonic</a> [lemma, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_NC_monotonic">WorkloadBoundGuan.W_NC_monotonic</a> [lemma, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_CI">WorkloadBoundGuan.W_CI</a> [definition, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_NC">WorkloadBoundGuan.W_NC</a> [definition, in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas">WorkloadBound.BasicLemmas</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_R1_le_R2">WorkloadBound.BasicLemmas.H_R1_le_R2</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_R_lower_bound">WorkloadBound.BasicLemmas.H_R_lower_bound</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_period_positive">WorkloadBound.BasicLemmas.H_period_positive</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.R1">WorkloadBound.BasicLemmas.R1</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.R2">WorkloadBound.BasicLemmas.R2</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.task_period">WorkloadBound.BasicLemmas.task_period</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.task_cost">WorkloadBound.BasicLemmas.task_cost</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.tsk">WorkloadBound.BasicLemmas.tsk</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.workload_bound">WorkloadBound.BasicLemmas.workload_bound</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.max_jobs">WorkloadBound.max_jobs</a> [definition, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound">WorkloadBound.ProofWorkloadBound</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq">WorkloadBound.ProofWorkloadBound.arr_seq</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.delta">WorkloadBound.ProofWorkloadBound.delta</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_response_time_bound">WorkloadBound.ProofWorkloadBound.H_response_time_bound</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_response_time_ge_cost">WorkloadBound.ProofWorkloadBound.H_response_time_ge_cost</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_no_deadline_misses_during_interval">WorkloadBound.ProofWorkloadBound.H_no_deadline_misses_during_interval</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_restricted_deadline">WorkloadBound.ProofWorkloadBound.H_restricted_deadline</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_valid_task_parameters">WorkloadBound.ProofWorkloadBound.H_valid_task_parameters</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_sporadic_tasks">WorkloadBound.ProofWorkloadBound.H_sporadic_tasks</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_no_parallelism">WorkloadBound.ProofWorkloadBound.H_no_parallelism</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_completed_jobs_dont_execute">WorkloadBound.ProofWorkloadBound.H_completed_jobs_dont_execute</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_jobs_must_arrive_to_execute">WorkloadBound.ProofWorkloadBound.H_jobs_must_arrive_to_execute</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_jobs_have_valid_parameters">WorkloadBound.ProofWorkloadBound.H_jobs_have_valid_parameters</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_has_completed_by">WorkloadBound.ProofWorkloadBound.job_has_completed_by</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_deadline">WorkloadBound.ProofWorkloadBound.job_deadline</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task">WorkloadBound.ProofWorkloadBound.job_task</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost">WorkloadBound.ProofWorkloadBound.job_cost</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof">WorkloadBound.ProofWorkloadBound.MainProof</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs">WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k">WorkloadBound.ProofWorkloadBound.MainProof.n_k</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.order">WorkloadBound.ProofWorkloadBound.MainProof.order</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence">WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs">WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2">WorkloadBound.ProofWorkloadBound.MainProof.t2</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.H_at_least_one_job">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.H_at_least_one_job</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.H_at_least_two_jobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.H_at_least_two_jobs</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound">WorkloadBound.ProofWorkloadBound.MainProof.workload_bound</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.no_deadline_misses_by">WorkloadBound.ProofWorkloadBound.no_deadline_misses_by</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk">WorkloadBound.ProofWorkloadBound.R_tsk</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched">WorkloadBound.ProofWorkloadBound.sched</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline">WorkloadBound.ProofWorkloadBound.task_deadline</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period">WorkloadBound.ProofWorkloadBound.task_period</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost">WorkloadBound.ProofWorkloadBound.task_cost</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk">WorkloadBound.ProofWorkloadBound.tsk</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1">WorkloadBound.ProofWorkloadBound.t1</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.workload_of">WorkloadBound.ProofWorkloadBound.workload_of</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.W">WorkloadBound.W</a> [definition, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef">WorkloadBound.WorkloadBoundDef</a> [section, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.delta">WorkloadBound.WorkloadBoundDef.delta</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.R_tsk">WorkloadBound.WorkloadBoundDef.R_tsk</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_period">WorkloadBound.WorkloadBoundDef.task_period</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_cost">WorkloadBound.WorkloadBoundDef.task_cost</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk">WorkloadBound.WorkloadBoundDef.tsk</a> [variable, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bounded_by_W">WorkloadBound.workload_bounded_by_W</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_equals_num_mid_jobs_plus_1">WorkloadBound.workload_bound_n_k_equals_num_mid_jobs_plus_1</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_equals_num_mid_jobs">WorkloadBound.workload_bound_n_k_equals_num_mid_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_covers_middle_jobs">WorkloadBound.workload_bound_n_k_covers_middle_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_helper_lemma">WorkloadBound.workload_bound_helper_lemma</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_many_periods_in_between">WorkloadBound.workload_bound_many_periods_in_between</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_service_of_middle_jobs">WorkloadBound.workload_bound_service_of_middle_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_expression_with_first_and_last">WorkloadBound.workload_bound_simpl_expression_with_first_and_last</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_service_of_first_and_last_jobs">WorkloadBound.workload_bound_service_of_first_and_last_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_last_job_arrives_before_end_of_interval">WorkloadBound.workload_bound_last_job_arrives_before_end_of_interval</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_response_time_of_first_job_inside_interval">WorkloadBound.workload_bound_response_time_of_first_job_inside_interval</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_j_lst_is_job_of_tsk">WorkloadBound.workload_bound_j_lst_is_job_of_tsk</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_holds_for_a_single_job">WorkloadBound.workload_bound_holds_for_a_single_job</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_j_fst_is_job_of_tsk">WorkloadBound.workload_bound_j_fst_is_job_of_tsk</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_holds_for_at_most_n_k_jobs">WorkloadBound.workload_bound_holds_for_at_most_n_k_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_jobs_ordered_by_arrival">WorkloadBound.workload_bound_jobs_ordered_by_arrival</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_all_jobs_from_tsk">WorkloadBound.workload_bound_all_jobs_from_tsk</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_job_in_same_sequence">WorkloadBound.workload_bound_job_in_same_sequence</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_by_sorting_interfering_jobs">WorkloadBound.workload_bound_simpl_by_sorting_interfering_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_by_filtering_interfering_jobs">WorkloadBound.workload_bound_simpl_by_filtering_interfering_jobs</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.W_monotonic">WorkloadBound.W_monotonic</a> [lemma, in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter">WorkloadWithJitter</a> [module, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas">WorkloadWithJitter.BasicLemmas</a> [section, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.period_positive">WorkloadWithJitter.BasicLemmas.period_positive</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.R">WorkloadWithJitter.BasicLemmas.R</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.R_lower_bound">WorkloadWithJitter.BasicLemmas.R_lower_bound</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_jitter">WorkloadWithJitter.BasicLemmas.task_jitter</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_period">WorkloadWithJitter.BasicLemmas.task_period</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_cost">WorkloadWithJitter.BasicLemmas.task_cost</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.tsk">WorkloadWithJitter.BasicLemmas.tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.workload_bound">WorkloadWithJitter.BasicLemmas.workload_bound</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.max_jobs_jitter">WorkloadWithJitter.max_jobs_jitter</a> [definition, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.no_deadline_misses_by">WorkloadWithJitter.no_deadline_misses_by</a> [definition, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter">WorkloadWithJitter.ProofWorkloadBoundJitter</a> [section, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.arr_seq">WorkloadWithJitter.ProofWorkloadBoundJitter.arr_seq</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions">WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions</a> [section, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions.tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions.tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.delta">WorkloadWithJitter.ProofWorkloadBoundJitter.delta</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.H_completed_jobs_dont_execute">WorkloadWithJitter.ProofWorkloadBoundJitter.H_completed_jobs_dont_execute</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.H_jobs_must_arrive_after_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.H_jobs_must_arrive_after_jitter</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.jobs_have_valid_parameters">WorkloadWithJitter.ProofWorkloadBoundJitter.jobs_have_valid_parameters</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.job_jitter</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.job_deadline</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_task">WorkloadWithJitter.ProofWorkloadBoundJitter.job_task</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.job_cost</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.no_deadline_misses_during_interval">WorkloadWithJitter.ProofWorkloadBoundJitter.no_deadline_misses_during_interval</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.no_parallelism">WorkloadWithJitter.ProofWorkloadBoundJitter.no_parallelism</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.num_cpus">WorkloadWithJitter.ProofWorkloadBoundJitter.num_cpus</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_ge_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_ge_cost</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_bound">WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_bound</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.restricted_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.restricted_deadline</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.R_tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.R_tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sched">WorkloadWithJitter.ProofWorkloadBoundJitter.sched</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.schedule_of_platform">WorkloadWithJitter.ProofWorkloadBoundJitter.schedule_of_platform</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sched_of_platform">WorkloadWithJitter.ProofWorkloadBoundJitter.sched_of_platform</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sporadic_tasks">WorkloadWithJitter.ProofWorkloadBoundJitter.sporadic_tasks</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.task_jitter</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.task_deadline</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_period">WorkloadWithJitter.ProofWorkloadBoundJitter.task_period</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.task_cost</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.t1">WorkloadWithJitter.ProofWorkloadBoundJitter.t1</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.valid_task_parameters">WorkloadWithJitter.ProofWorkloadBoundJitter.valid_task_parameters</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.workload_bound">WorkloadWithJitter.ProofWorkloadBoundJitter.workload_bound</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.response_time_bound_of">WorkloadWithJitter.response_time_bound_of</a> [definition, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter">WorkloadWithJitter.WorkloadBoundWithJitter</a> [section, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.delta">WorkloadWithJitter.WorkloadBoundWithJitter.delta</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.job_task">WorkloadWithJitter.WorkloadBoundWithJitter.job_task</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.R_tsk">WorkloadWithJitter.WorkloadBoundWithJitter.R_tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.sched">WorkloadWithJitter.WorkloadBoundWithJitter.sched</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_jitter">WorkloadWithJitter.WorkloadBoundWithJitter.task_jitter</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_period">WorkloadWithJitter.WorkloadBoundWithJitter.task_period</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_cost">WorkloadWithJitter.WorkloadBoundWithJitter.task_cost</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.tsk">WorkloadWithJitter.WorkloadBoundWithJitter.tsk</a> [variable, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.workload_bounded_by_W_jitter">WorkloadWithJitter.workload_bounded_by_W_jitter</a> [lemma, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.workload_of">WorkloadWithJitter.workload_of</a> [definition, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.W_jitter_monotonic">WorkloadWithJitter.W_jitter_monotonic</a> [lemma, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.W_jitter">WorkloadWithJitter.W_jitter</a> [definition, in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html">workload_jitter</a> [library]<br/>
-<a href="workload_guan.html">workload_guan</a> [library]<br/>
-<a href="workload_bound.html">workload_bound</a> [library]<br/>
-<a href="workload.html#Workload.service_of_task">Workload.service_of_task</a> [definition, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.workload">Workload.workload</a> [definition, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef">Workload.WorkloadDef</a> [section, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.job_task">Workload.WorkloadDef.job_task</a> [variable, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.sched">Workload.WorkloadDef.sched</a> [variable, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.tsk">Workload.WorkloadDef.tsk</a> [variable, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.workload_eq_workload_joblist">Workload.workload_eq_workload_joblist</a> [lemma, in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.workload_joblist">Workload.workload_joblist</a> [definition, in <a href="workload.html">workload</a>]<br/>
-<br/><br/><a name="global_X"></a><h2>X </h2>
-<a href="Vbase.html#xorPif">xorPif</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#xorPifn">xorPifn</a> [lemma, in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="global_Z"></a><h2>Z </h2>
-<a href="util_lemmas.html#zipP">zipP</a> [lemma, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="global_*"></a><h2>other </h2>
-<a href="util_lemmas.html#:bool_scope:x_'\In'_x">_ \In _ (bool_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'!='_x_':>'_x">_ != _ :> _ (bool_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'!='_x">_ != _ (bool_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'=='_x_':>'_x">_ == _ :> _ (bool_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'=='_x">_ == _ (bool_scope)</a> [notation, in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_'|'_x_')'_x">\cat_ ( _ < _ | _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x">\cat_ ( _ < _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x">\max_ ( ( _ , _ ) <- _ | _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_')'_x">\max_ ( ( _ , _ ) <- _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x">\sum_ ( ( _ , _ ) <- _ | _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x">\sum_ ( ( _ , _ ) <- _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_'|'_x_')'_x">\cat_ ( _ <= _ < _ | _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x">\cat_ ( _ <= _ < _ ) _ (nat_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:seq_scope:'['_'seq'_'('_x_','_x_')'_'<-'_x_'|'_x_']'">[ seq ( _ , _ ) <- _ | _ ] (seq_scope)</a> [notation, in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#::x_'<-->'_x">_ <--> _</a> [notation, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#::x_'UNION1'_'('_x_','_x_')'">_ UNION1 ( _ , _ )</a> [notation, in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><hr/>
-<h1>Notation Index</h1>
-<a name="notation_E"></a><h2>E </h2>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqType'_'of'_x_']'">[ eqType of _ ] (form_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqType'_'of'_x_'for'_x_']'">[ eqType of _ for _ ] (form_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.:form_scope:'['_'eqMixin'_'of'_x_']'">[ eqMixin of _ ] (form_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="notation_*"></a><h2>other </h2>
-<a href="util_lemmas.html#:bool_scope:x_'\In'_x">_ \In _ (bool_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'!='_x_':>'_x">_ != _ :> _ (bool_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'!='_x">_ != _ (bool_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'=='_x_':>'_x">_ == _ :> _ (bool_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#:bool_scope:x_'=='_x">_ == _ (bool_scope)</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_'|'_x_')'_x">\cat_ ( _ < _ | _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x">\cat_ ( _ < _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x">\max_ ( ( _ , _ ) <- _ | _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_')'_x">\max_ ( ( _ , _ ) <- _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x">\sum_ ( ( _ , _ ) <- _ | _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x">\sum_ ( ( _ , _ ) <- _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_'|'_x_')'_x">\cat_ ( _ <= _ < _ | _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x">\cat_ ( _ <= _ < _ ) _ (nat_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#:seq_scope:'['_'seq'_'('_x_','_x_')'_'<-'_x_'|'_x_']'">[ seq ( _ , _ ) <- _ | _ ] (seq_scope)</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#::x_'<-->'_x">_ <--> _</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#::x_'UNION1'_'('_x_','_x_')'">_ UNION1 ( _ , _ )</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><hr/>
-<h1>Module Index</h1>
-<a name="module_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence">ArrivalSequence</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><a name="module_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound">EDFSpecificBound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#Equality">Equality</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports">Equality.Exports</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="module_I"></a><h2>I </h2>
-<a href="interference.html#Interference">Interference</a> [in <a href="interference.html">interference</a>]<br/>
-<br/><br/><a name="module_J"></a><h2>J </h2>
-<a href="job.html#Job">Job</a> [in <a href="job.html">job</a>]<br/>
-<br/><br/><a name="module_P"></a><h2>P </h2>
-<a href="platform.html#Platform">Platform</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="priority.html#Priority">Priority</a> [in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="module_R"></a><h2>R </h2>
-<a href="response_time.html#ResponseTime">ResponseTime</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF">ResponseTimeAnalysisEDF</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP">ResponseTimeAnalysisFP</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan">ResponseTimeAnalysisGuan</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter">ResponseTimeAnalysisJitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF">ResponseTimeIterationEDF</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP">ResponseTimeIterationFP</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan">ResponseTimeIterationFPGuan</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter">ResponseTimeIterationFPWithJitter</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<br/><br/><a name="module_S"></a><h2>S </h2>
-<a href="schedulability.html#Schedulability">Schedulability</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#Schedule">Schedule</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask">ScheduleOfSporadicTask</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter">ScheduleOfTaskWithJitter</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="task.html#SporadicTask">SporadicTask</a> [in <a href="task.html">task</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival">SporadicTaskArrival</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task.html#SporadicTaskset">SporadicTaskset</a> [in <a href="task.html">task</a>]<br/>
-<br/><br/><a name="module_W"></a><h2>W </h2>
-<a href="workload.html#Workload">Workload</a> [in <a href="workload.html">workload</a>]<br/>
-<a href="workload_bound.html#WorkloadBound">WorkloadBound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan">WorkloadBoundGuan</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter">WorkloadWithJitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<br/><br/><hr/>
-<h1>Variable Index</h1>
-<a name="variable_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef.Job">ArrivalSequence.ArrivalSequenceDef.Job</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties.arr_seq">ArrivalSequence.ArrivalSequenceProperties.arr_seq</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivingJobs.j">ArrivalSequence.ArrivingJobs.j</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><a name="variable_B"></a><h2>B </h2>
-<a href="Vbase.html#BoolIf.A">BoolIf.A</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.b">BoolIf.b</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.B">BoolIf.B</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.f">BoolIf.f</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.vF">BoolIf.vF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.vT">BoolIf.vT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#BoolIf.x">BoolIf.x</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="variable_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.delta">EDFSpecificBound.EDFBoundDef.delta</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.R_other">EDFSpecificBound.EDFBoundDef.R_other</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_deadline">EDFSpecificBound.EDFBoundDef.task_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_period">EDFSpecificBound.EDFBoundDef.task_period</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_cost">EDFSpecificBound.EDFBoundDef.task_cost</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk">EDFSpecificBound.EDFBoundDef.tsk</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk_other">EDFSpecificBound.EDFBoundDef.tsk_other</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.all_jobs_from_taskset">EDFSpecificBound.ProofInterferenceBound.all_jobs_from_taskset</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.delta">EDFSpecificBound.ProofInterferenceBound.delta</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.higher_eq_priority">EDFSpecificBound.ProofInterferenceBound.higher_eq_priority</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_all_previous_jobs_completed_on_time">EDFSpecificBound.ProofInterferenceBound.H_all_previous_jobs_completed_on_time</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_delta_le_deadline">EDFSpecificBound.ProofInterferenceBound.H_delta_le_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_R_k_le_deadline">EDFSpecificBound.ProofInterferenceBound.H_R_k_le_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_tsk_k_in_task_set">EDFSpecificBound.ProofInterferenceBound.H_tsk_k_in_task_set</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_job_of_tsk_i">EDFSpecificBound.ProofInterferenceBound.H_job_of_tsk_i</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_tsk_i_in_task_set">EDFSpecificBound.ProofInterferenceBound.H_tsk_i_in_task_set</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_global_scheduling_invariant">EDFSpecificBound.ProofInterferenceBound.H_global_scheduling_invariant</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_restricted_deadlines">EDFSpecificBound.ProofInterferenceBound.H_restricted_deadlines</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_valid_task_parameters">EDFSpecificBound.ProofInterferenceBound.H_valid_task_parameters</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_at_least_one_cpu">EDFSpecificBound.ProofInterferenceBound.H_at_least_one_cpu</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_no_parallelism">EDFSpecificBound.ProofInterferenceBound.H_no_parallelism</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_completed_jobs_dont_execute">EDFSpecificBound.ProofInterferenceBound.H_completed_jobs_dont_execute</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_jobs_must_arrive_to_execute">EDFSpecificBound.ProofInterferenceBound.H_jobs_must_arrive_to_execute</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_valid_job_parameters">EDFSpecificBound.ProofInterferenceBound.H_valid_job_parameters</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.H_sporadic_tasks">EDFSpecificBound.ProofInterferenceBound.H_sporadic_tasks</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task">EDFSpecificBound.ProofInterferenceBound.job_task</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline">EDFSpecificBound.ProofInterferenceBound.job_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost">EDFSpecificBound.ProofInterferenceBound.job_cost</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i">EDFSpecificBound.ProofInterferenceBound.j_i</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k">EDFSpecificBound.ProofInterferenceBound.MainProof.D_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i">EDFSpecificBound.ProofInterferenceBound.MainProof.D_i</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs.H_few_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs.H_few_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.H_many_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.H_many_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.H_only_one_job">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.H_only_one_job</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded.H_j_fst_completed_by_rt_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded.H_j_fst_completed_by_rt_bound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded.H_j_fst_not_complete_by_rt_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded.H_j_fst_not_complete_by_rt_bound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.H_at_least_two_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.H_at_least_two_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by">EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound">EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k">EDFSpecificBound.ProofInterferenceBound.MainProof.n_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.order">EDFSpecificBound.ProofInterferenceBound.MainProof.order</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k">EDFSpecificBound.ProofInterferenceBound.MainProof.p_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs">EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1">EDFSpecificBound.ProofInterferenceBound.MainProof.t1</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2">EDFSpecificBound.ProofInterferenceBound.MainProof.t2</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.x">EDFSpecificBound.ProofInterferenceBound.MainProof.x</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.no_deadline_is_missed_by_tsk">EDFSpecificBound.ProofInterferenceBound.no_deadline_is_missed_by_tsk</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.num_cpus">EDFSpecificBound.ProofInterferenceBound.num_cpus</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.response_time_bounded_by">EDFSpecificBound.ProofInterferenceBound.response_time_bounded_by</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k">EDFSpecificBound.ProofInterferenceBound.R_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched">EDFSpecificBound.ProofInterferenceBound.sched</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline">EDFSpecificBound.ProofInterferenceBound.task_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period">EDFSpecificBound.ProofInterferenceBound.task_period</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost">EDFSpecificBound.ProofInterferenceBound.task_cost</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts">EDFSpecificBound.ProofInterferenceBound.ts</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k">EDFSpecificBound.ProofInterferenceBound.tsk_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i">EDFSpecificBound.ProofInterferenceBound.tsk_i</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef.cT">Equality.ClassDef.cT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef.T">Equality.ClassDef.T</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="variable_I"></a><h2>I </h2>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.completed_jobs_dont_execute">Interference.InterferenceDefs.CorrespondenceWithService.completed_jobs_dont_execute</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.jobs_must_arrive_to_execute">Interference.InterferenceDefs.CorrespondenceWithService.jobs_must_arrive_to_execute</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.job_is_not_complete">Interference.InterferenceDefs.CorrespondenceWithService.job_is_not_complete</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.job_has_arrived">Interference.InterferenceDefs.CorrespondenceWithService.job_has_arrived</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.no_parallelism">Interference.InterferenceDefs.CorrespondenceWithService.no_parallelism</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1">Interference.InterferenceDefs.CorrespondenceWithService.t1</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2">Interference.InterferenceDefs.CorrespondenceWithService.t2</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.EquivalenceWithPerJobInterference.H_no_intratask_parallelism">Interference.InterferenceDefs.EquivalenceWithPerJobInterference.H_no_intratask_parallelism</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.j">Interference.InterferenceDefs.j</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.JobInterference.job_other">Interference.InterferenceDefs.JobInterference.job_other</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_is_backlogged">Interference.InterferenceDefs.job_is_backlogged</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_task">Interference.InterferenceDefs.job_task</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.job_cost">Interference.InterferenceDefs.job_cost</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.sched">Interference.InterferenceDefs.sched</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other">Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterference.tsk_other">Interference.InterferenceDefs.TaskInterference.tsk_other</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.FP.higher_eq_priority">Interference.InterferingTasks.FP.higher_eq_priority</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_deadline">Interference.InterferingTasks.task_deadline</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_period">Interference.InterferingTasks.task_period</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.task_cost">Interference.InterferingTasks.task_cost</a> [in <a href="interference.html">interference</a>]<br/>
-<br/><br/><a name="variable_J"></a><h2>J </h2>
-<a href="job.html#Job.ValidJob.j">Job.ValidJob.j</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidJob.job_cost">Job.ValidJob.job_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.j">Job.ValidRealtimeJob.j</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.job_deadline">Job.ValidRealtimeJob.job_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob.job_cost">Job.ValidRealtimeJob.job_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.j">Job.ValidSporadicTaskJobWithJitter.j</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_jitter">Job.ValidSporadicTaskJobWithJitter.job_jitter</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_task">Job.ValidSporadicTaskJobWithJitter.job_task</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_deadline">Job.ValidSporadicTaskJobWithJitter.job_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.job_cost">Job.ValidSporadicTaskJobWithJitter.job_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.j_is_valid_job">Job.ValidSporadicTaskJobWithJitter.j_is_valid_job</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_jitter">Job.ValidSporadicTaskJobWithJitter.task_jitter</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_deadline">Job.ValidSporadicTaskJobWithJitter.task_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter.task_cost">Job.ValidSporadicTaskJobWithJitter.task_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.j">Job.ValidSporadicTaskJob.j</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_task">Job.ValidSporadicTaskJob.job_task</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_deadline">Job.ValidSporadicTaskJob.job_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.job_cost">Job.ValidSporadicTaskJob.job_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.task_deadline">Job.ValidSporadicTaskJob.task_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob.task_cost">Job.ValidSporadicTaskJob.task_cost</a> [in <a href="job.html">job</a>]<br/>
-<br/><br/><a name="variable_L"></a><h2>L </h2>
-<a href="util_lemmas.html#l">l</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="variable_N"></a><h2>N </h2>
-<a href="Vbase.html#NegationLemmas.b">NegationLemmas.b</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#NegationLemmas.c">NegationLemmas.c</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="variable_O"></a><h2>O </h2>
-<a href="ExtraRelations.html#one_extension.rel">one_extension.rel</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension.elem">one_extension.elem</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_extension.X">one_extension.X</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="variable_P"></a><h2>P </h2>
-<a href="util_lemmas.html#Pair.p">Pair.p</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.FP.higher_eq_priority">Platform.SchedulingInvariants.FP.higher_eq_priority</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_intra_task_parallelism">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_intra_task_parallelism</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_parallelism">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_parallelism</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_all_jobs_from_taskset">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_all_jobs_from_taskset</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_ts_is_a_set">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_ts_is_a_set</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas.H_invariant_holds">Platform.SchedulingInvariants.JLDP.BasicLemmas.H_invariant_holds</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.higher_eq_priority">Platform.SchedulingInvariants.JLDP.higher_eq_priority</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_task">Platform.SchedulingInvariants.job_task</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_deadline">Platform.SchedulingInvariants.job_deadline</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.job_cost">Platform.SchedulingInvariants.job_cost</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.num_cpus">Platform.SchedulingInvariants.num_cpus</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.sched">Platform.SchedulingInvariants.sched</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_deadline">Platform.SchedulingInvariants.task_deadline</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_period">Platform.SchedulingInvariants.task_period</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.task_cost">Platform.SchedulingInvariants.task_cost</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.ts">Platform.SchedulingInvariants.ts</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="priority.html#Priority.EDFDefs.arr_seq">Priority.EDFDefs.arr_seq</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDFDefs.job_deadline">Priority.EDFDefs.job_deadline</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.arr_seq">Priority.GeneralizeFP.arr_seq</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.job_task">Priority.GeneralizeFP.job_task</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP.num_cpus">Priority.GeneralizeFP.num_cpus</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs.is_higher_priority">Priority.JLFPDefs.is_higher_priority</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs.job_task">Priority.JLFPDefs.job_task</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.arr_seq">Priority.PriorityDefs.arr_seq</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.sporadic_task">Priority.PriorityDefs.sporadic_task</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidFPPolicy.is_higher_priority">Priority.PriorityDefs.ValidFPPolicy.is_higher_priority</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority">Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic.task_deadline">Priority.RateDeadlineMonotonic.task_deadline</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic.task_period">Priority.RateDeadlineMonotonic.task_period</a> [in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="variable_R"></a><h2>R </h2>
-<a href="Vbase.html#ReflectConnectives.b1">ReflectConnectives.b1</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b2">ReflectConnectives.b2</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b3">ReflectConnectives.b3</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b4">ReflectConnectives.b4</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives.b5">ReflectConnectives.b5</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.b">ReflectCore.b</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.c">ReflectCore.c</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.Hb">ReflectCore.Hb</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.P">ReflectCore.P</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore.Q">ReflectCore.Q</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.b">ReflectNegCore.b</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.c">ReflectNegCore.c</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.Hb">ReflectNegCore.Hb</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.P">ReflectNegCore.P</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore.Q">ReflectNegCore.Q</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.b">Reflect.b</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.b'">Reflect.b'</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.c">Reflect.c</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.P">Reflect.P</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Pb">Reflect.Pb</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Pb'">Reflect.Pb'</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Reflect.Q">Reflect.Q</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.all_jobs_from_taskset">ResponseTimeAnalysisEDF.ResponseTimeBound.all_jobs_from_taskset</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisEDF.ResponseTimeBound.higher_eq_priority</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_ts_is_a_set">ResponseTimeAnalysisEDF.ResponseTimeBound.H_ts_is_a_set</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisEDF.ResponseTimeBound.H_global_scheduling_invariant</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_tasks_miss_no_deadlines">ResponseTimeAnalysisEDF.ResponseTimeBound.H_tasks_miss_no_deadlines</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_response_time_is_fixed_point">ResponseTimeAnalysisEDF.ResponseTimeBound.H_response_time_is_fixed_point</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_rt_bounds_contains_all_tasks">ResponseTimeAnalysisEDF.ResponseTimeBound.H_rt_bounds_contains_all_tasks</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisEDF.ResponseTimeBound.H_restricted_deadlines</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_task_parameters</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_intra_task_parallelism">ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_intra_task_parallelism</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisEDF.ResponseTimeBound.H_at_least_one_cpu</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisEDF.ResponseTimeBound.H_no_parallelism</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisEDF.ResponseTimeBound.H_completed_jobs_dont_execute</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_jobs_must_arrive_to_execute">ResponseTimeAnalysisEDF.ResponseTimeBound.H_jobs_must_arrive_to_execute</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisEDF.ResponseTimeBound.H_valid_job_parameters</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisEDF.ResponseTimeBound.H_sporadic_tasks</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.I">ResponseTimeAnalysisEDF.ResponseTimeBound.I</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_task">ResponseTimeAnalysisEDF.ResponseTimeBound.job_task</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline">ResponseTimeAnalysisEDF.ResponseTimeBound.job_deadline</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost">ResponseTimeAnalysisEDF.ResponseTimeBound.job_cost</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.edf_specific_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_all_previous_jobs_completed_on_time">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_all_previous_jobs_completed_on_time</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_j_not_completed">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_j_not_completed</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_job_of_tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_job_of_tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_tsk_R_in_rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.H_tsk_R_in_rt_bounds</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.interference_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.j</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.R</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.ts_interf</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.workload_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.X</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.x</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.H_tsk_R_in_rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.H_tsk_R_in_rt_bounds</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.R</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof.tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisEDF.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus">ResponseTimeAnalysisEDF.ResponseTimeBound.num_cpus</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by">ResponseTimeAnalysisEDF.ResponseTimeBound.response_time_bounded_by</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds">ResponseTimeAnalysisEDF.ResponseTimeBound.rt_bounds</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.sched">ResponseTimeAnalysisEDF.ResponseTimeBound.sched</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisEDF.ResponseTimeBound.task_with_response_time</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline">ResponseTimeAnalysisEDF.ResponseTimeBound.task_deadline</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_period">ResponseTimeAnalysisEDF.ResponseTimeBound.task_period</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost">ResponseTimeAnalysisEDF.ResponseTimeBound.task_cost</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.ts">ResponseTimeAnalysisEDF.ResponseTimeBound.ts</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks.interferes_with_tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.delta">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.delta</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.basic_interference_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.edf_specific_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.R_other</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_other</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask.tsk_R</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.R_prev</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_with_response_time</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_deadline</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_period</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.task_cost</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.tsk</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.higher_eq_priority</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks.interferes_with_tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.delta">ResponseTimeAnalysisFP.InterferenceBoundFP.delta</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.R_other</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_other</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask.tsk_R</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev">ResponseTimeAnalysisFP.InterferenceBoundFP.R_prev</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time">ResponseTimeAnalysisFP.InterferenceBoundFP.task_with_response_time</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_deadline">ResponseTimeAnalysisFP.InterferenceBoundFP.task_deadline</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_period">ResponseTimeAnalysisFP.InterferenceBoundFP.task_period</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost">ResponseTimeAnalysisFP.InterferenceBoundFP.task_cost</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.tsk">ResponseTimeAnalysisFP.InterferenceBoundFP.tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisFP.ResponseTimeBound.higher_eq_priority</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds">ResponseTimeAnalysisFP.ResponseTimeBound.hp_bounds</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_no_larger_than_deadline</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_recurrence_holds">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_recurrence_holds</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisFP.ResponseTimeBound.H_global_scheduling_invariant</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisFP.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_bounds_ge_cost">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_bounds_ge_cost</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisFP.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisFP.ResponseTimeBound.H_hp_bounds_has_interfering_tasks</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisFP.ResponseTimeBound.H_restricted_deadlines</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_task_parameters</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisFP.ResponseTimeBound.H_at_least_one_cpu</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisFP.ResponseTimeBound.H_no_parallelism</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisFP.ResponseTimeBound.H_completed_jobs_dont_execute</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_jobs_must_arrive_to_execute">ResponseTimeAnalysisFP.ResponseTimeBound.H_jobs_must_arrive_to_execute</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisFP.ResponseTimeBound.H_valid_job_parameters</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisFP.ResponseTimeBound.H_sporadic_tasks</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.interferes_with_tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound">ResponseTimeAnalysisFP.ResponseTimeBound.is_response_time_bound</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_task">ResponseTimeAnalysisFP.ResponseTimeBound.job_task</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.job_deadline</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.job_cost">ResponseTimeAnalysisFP.ResponseTimeBound.job_cost</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction.cardGE</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_j_not_completed">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_j_not_completed</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_job_of_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.H_job_of_tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.j</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.H_response_time_of_tsk_other</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.R_other</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks.tsk_other</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.ts_interf</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.workload_bound</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.X</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.x</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisFP.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus">ResponseTimeAnalysisFP.ResponseTimeBound.num_cpus</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.R">ResponseTimeAnalysisFP.ResponseTimeBound.R</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.sched">ResponseTimeAnalysisFP.ResponseTimeBound.sched</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisFP.ResponseTimeBound.task_with_response_time</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_in_ts">ResponseTimeAnalysisFP.ResponseTimeBound.task_in_ts</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline">ResponseTimeAnalysisFP.ResponseTimeBound.task_deadline</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_period">ResponseTimeAnalysisFP.ResponseTimeBound.task_period</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.task_cost">ResponseTimeAnalysisFP.ResponseTimeBound.task_cost</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.ts">ResponseTimeAnalysisFP.ResponseTimeBound.ts</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.tsk">ResponseTimeAnalysisFP.ResponseTimeBound.tsk</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.delta">ResponseTimeAnalysisGuan.InterferenceBoundGuan.delta</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.higher_eq_priority">ResponseTimeAnalysisGuan.InterferenceBoundGuan.higher_eq_priority</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.R_other">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.R_other</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_other">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_other</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_R">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry.tsk_R</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.num_cpus">ResponseTimeAnalysisGuan.InterferenceBoundGuan.num_cpus</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.R_prev">ResponseTimeAnalysisGuan.InterferenceBoundGuan.R_prev</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.all_combinations">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.all_combinations</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.interfering_tasks">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition.interfering_tasks</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_with_response_time">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_with_response_time</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_deadline">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_deadline</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_period">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_period</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_cost">ResponseTimeAnalysisGuan.InterferenceBoundGuan.task_cost</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.tsk">ResponseTimeAnalysisGuan.InterferenceBoundGuan.tsk</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.higher_eq_priority">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.higher_eq_priority</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.hp_bounds">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.hp_bounds</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_no_larger_than_deadline</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_recurrence_holds">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_recurrence_holds</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_global_scheduling_invariant">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_global_scheduling_invariant</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_interfering_tasks_miss_no_deadlines</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_bounds_ge_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_bounds_ge_cost</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_response_time_of_interfering_tasks_is_known</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_hp_bounds_has_interfering_tasks</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_restricted_deadlines">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_restricted_deadlines</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_task_parameters">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_task_parameters</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_at_least_one_cpu">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_at_least_one_cpu</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_no_parallelism">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_no_parallelism</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_completed_jobs_dont_execute">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_completed_jobs_dont_execute</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_jobs_execute_after_jitter">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_jobs_execute_after_jitter</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_job_parameters">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_valid_job_parameters</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_sporadic_tasks">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.H_sporadic_tasks</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.I">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.I</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.interferes_with_tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.interferes_with_tsk</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.is_response_time_bound">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.is_response_time_bound</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_task">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_task</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_deadline</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.job_cost</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.no_deadline_is_missed_by_tsk</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.num_cpus">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.num_cpus</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.R">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.R</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.sched">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.sched</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_with_response_time">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_with_response_time</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_in_ts">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_in_ts</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_deadline">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_deadline</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_period">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_period</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_cost">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.task_cost</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.ts">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.ts</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.tsk">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan.tsk</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.delta">ResponseTimeAnalysisJitter.InterferenceBoundJitter.delta</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP.higher_eq_priority">ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP.higher_eq_priority</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP.is_interfering_task_jlfp">ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP.is_interfering_task_jlfp</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.R_other">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.R_other</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_other">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_other</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_R">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask.tsk_R</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.R_prev">ResponseTimeAnalysisJitter.InterferenceBoundJitter.R_prev</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_with_response_time">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_with_response_time</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_jitter">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_deadline">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_deadline</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_period">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_period</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_cost">ResponseTimeAnalysisJitter.InterferenceBoundJitter.task_cost</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.tsk">ResponseTimeAnalysisJitter.InterferenceBoundJitter.tsk</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.higher_eq_priority">ResponseTimeAnalysisJitter.ResponseTimeBound.higher_eq_priority</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.hp_bounds">ResponseTimeAnalysisJitter.ResponseTimeBound.hp_bounds</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_no_larger_than_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_no_larger_than_deadline</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_recurrence_holds">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_recurrence_holds</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_global_scheduling_invariant">ResponseTimeAnalysisJitter.ResponseTimeBound.H_global_scheduling_invariant</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines">ResponseTimeAnalysisJitter.ResponseTimeBound.H_interfering_tasks_miss_no_deadlines</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_bounds_ge_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_bounds_ge_cost</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known">ResponseTimeAnalysisJitter.ResponseTimeBound.H_response_time_of_interfering_tasks_is_known</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_hp_bounds_has_interfering_tasks">ResponseTimeAnalysisJitter.ResponseTimeBound.H_hp_bounds_has_interfering_tasks</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_restricted_deadlines">ResponseTimeAnalysisJitter.ResponseTimeBound.H_restricted_deadlines</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_task_parameters">ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_task_parameters</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_at_least_one_cpu">ResponseTimeAnalysisJitter.ResponseTimeBound.H_at_least_one_cpu</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_no_parallelism">ResponseTimeAnalysisJitter.ResponseTimeBound.H_no_parallelism</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_completed_jobs_dont_execute">ResponseTimeAnalysisJitter.ResponseTimeBound.H_completed_jobs_dont_execute</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_jobs_execute_after_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.H_jobs_execute_after_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_job_parameters">ResponseTimeAnalysisJitter.ResponseTimeBound.H_valid_job_parameters</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.H_sporadic_tasks">ResponseTimeAnalysisJitter.ResponseTimeBound.H_sporadic_tasks</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.I">ResponseTimeAnalysisJitter.ResponseTimeBound.I</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.interferes_with_tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.interferes_with_tsk</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.is_response_time_bound">ResponseTimeAnalysisJitter.ResponseTimeBound.is_response_time_bound</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.job_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_task">ResponseTimeAnalysisJitter.ResponseTimeBound.job_task</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.job_deadline</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.job_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.job_cost</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.no_deadline_is_missed_by_tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.no_deadline_is_missed_by_tsk</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.num_cpus">ResponseTimeAnalysisJitter.ResponseTimeBound.num_cpus</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.R">ResponseTimeAnalysisJitter.ResponseTimeBound.R</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.R'">ResponseTimeAnalysisJitter.ResponseTimeBound.R'</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.sched">ResponseTimeAnalysisJitter.ResponseTimeBound.sched</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_with_response_time">ResponseTimeAnalysisJitter.ResponseTimeBound.task_with_response_time</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_in_ts">ResponseTimeAnalysisJitter.ResponseTimeBound.task_in_ts</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_jitter">ResponseTimeAnalysisJitter.ResponseTimeBound.task_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_deadline">ResponseTimeAnalysisJitter.ResponseTimeBound.task_deadline</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_period">ResponseTimeAnalysisJitter.ResponseTimeBound.task_period</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.task_cost">ResponseTimeAnalysisJitter.ResponseTimeBound.task_cost</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.ts">ResponseTimeAnalysisJitter.ResponseTimeBound.ts</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound.tsk">ResponseTimeAnalysisJitter.ResponseTimeBound.tsk</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.all_le">ResponseTimeIterationEDF.Analysis.Convergence.all_le</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_keeps_diverging">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_keeps_diverging</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_at_least_one_task">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction.H_at_least_one_task</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.f">ResponseTimeIterationEDF.Analysis.Convergence.f</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.H_valid_task_parameters">ResponseTimeIterationEDF.Analysis.Convergence.H_valid_task_parameters</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.one_lt">ResponseTimeIterationEDF.Analysis.Convergence.one_lt</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.ts">ResponseTimeIterationEDF.Analysis.Convergence.ts</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.I">ResponseTimeIterationEDF.Analysis.I</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.initial_state">ResponseTimeIterationEDF.Analysis.initial_state</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_task">ResponseTimeIterationEDF.Analysis.job_task</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_deadline">ResponseTimeIterationEDF.Analysis.job_deadline</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.job_cost">ResponseTimeIterationEDF.Analysis.job_cost</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority">ResponseTimeIterationEDF.Analysis.MainProof.higher_eq_priority</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_test_succeeds">ResponseTimeIterationEDF.Analysis.MainProof.H_test_succeeds</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_global_scheduling_invariant">ResponseTimeIterationEDF.Analysis.MainProof.H_global_scheduling_invariant</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_no_intra_task_parallelism">ResponseTimeIterationEDF.Analysis.MainProof.H_no_intra_task_parallelism</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_no_parallelism">ResponseTimeIterationEDF.Analysis.MainProof.H_no_parallelism</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_completed_jobs_dont_execute">ResponseTimeIterationEDF.Analysis.MainProof.H_completed_jobs_dont_execute</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_jobs_must_arrive_to_execute">ResponseTimeIterationEDF.Analysis.MainProof.H_jobs_must_arrive_to_execute</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_at_least_one_cpu">ResponseTimeIterationEDF.Analysis.MainProof.H_at_least_one_cpu</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_sporadic_tasks">ResponseTimeIterationEDF.Analysis.MainProof.H_sporadic_tasks</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_valid_job_parameters">ResponseTimeIterationEDF.Analysis.MainProof.H_valid_job_parameters</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_all_jobs_from_taskset">ResponseTimeIterationEDF.Analysis.MainProof.H_all_jobs_from_taskset</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_restricted_deadlines">ResponseTimeIterationEDF.Analysis.MainProof.H_restricted_deadlines</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_valid_task_parameters">ResponseTimeIterationEDF.Analysis.MainProof.H_valid_task_parameters</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.H_ts_is_a_set">ResponseTimeIterationEDF.Analysis.MainProof.H_ts_is_a_set</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.sched">ResponseTimeIterationEDF.Analysis.MainProof.sched</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof.ts">ResponseTimeIterationEDF.Analysis.MainProof.ts</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.max_steps">ResponseTimeIterationEDF.Analysis.max_steps</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.delta'</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_cost_le_rt_bound">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_cost_le_rt_bound</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_response_time_monotonic">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_response_time_monotonic</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_delta_monotonic">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_delta_monotonic</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_period_positive">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.H_period_positive</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.R'</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound.tsk_other</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.num_cpus">ResponseTimeIterationEDF.Analysis.num_cpus</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_with_response_time">ResponseTimeIterationEDF.Analysis.task_with_response_time</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_deadline">ResponseTimeIterationEDF.Analysis.task_deadline</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_period">ResponseTimeIterationEDF.Analysis.task_period</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.task_cost">ResponseTimeIterationEDF.Analysis.task_cost</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.higher_eq_priority">ResponseTimeIterationFPGuan.Analysis.higher_eq_priority</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.I">ResponseTimeIterationFPGuan.Analysis.I</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_task">ResponseTimeIterationFPGuan.Analysis.job_task</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_deadline">ResponseTimeIterationFPGuan.Analysis.job_deadline</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.job_cost">ResponseTimeIterationFPGuan.Analysis.job_cost</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.max_steps">ResponseTimeIterationFPGuan.Analysis.max_steps</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.num_cpus">ResponseTimeIterationFPGuan.Analysis.num_cpus</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_test_succeeds">ResponseTimeIterationFPGuan.Analysis.Proof.H_test_succeeds</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_global_scheduling_invariant">ResponseTimeIterationFPGuan.Analysis.Proof.H_global_scheduling_invariant</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_no_parallelism">ResponseTimeIterationFPGuan.Analysis.Proof.H_no_parallelism</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_completed_jobs_dont_execute">ResponseTimeIterationFPGuan.Analysis.Proof.H_completed_jobs_dont_execute</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_jobs_execute_after_jitter">ResponseTimeIterationFPGuan.Analysis.Proof.H_jobs_execute_after_jitter</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_at_least_one_cpu">ResponseTimeIterationFPGuan.Analysis.Proof.H_at_least_one_cpu</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_sporadic_tasks">ResponseTimeIterationFPGuan.Analysis.Proof.H_sporadic_tasks</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_job_parameters">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_job_parameters</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_all_jobs_from_taskset">ResponseTimeIterationFPGuan.Analysis.Proof.H_all_jobs_from_taskset</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_sorted_ts">ResponseTimeIterationFPGuan.Analysis.Proof.H_sorted_ts</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_restricted_deadlines">ResponseTimeIterationFPGuan.Analysis.Proof.H_restricted_deadlines</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_task_parameters">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_task_parameters</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_ts_is_a_set">ResponseTimeIterationFPGuan.Analysis.Proof.H_ts_is_a_set</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_unique_priorities">ResponseTimeIterationFPGuan.Analysis.Proof.H_unique_priorities</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_policy">ResponseTimeIterationFPGuan.Analysis.Proof.H_valid_policy</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.sched">ResponseTimeIterationFPGuan.Analysis.Proof.sched</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.ts">ResponseTimeIterationFPGuan.Analysis.Proof.ts</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_with_response_time">ResponseTimeIterationFPGuan.Analysis.task_with_response_time</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_deadline">ResponseTimeIterationFPGuan.Analysis.task_deadline</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_period">ResponseTimeIterationFPGuan.Analysis.task_period</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.task_cost">ResponseTimeIterationFPGuan.Analysis.task_cost</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.higher_eq_priority">ResponseTimeIterationFPWithJitter.Analysis.higher_eq_priority</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.I">ResponseTimeIterationFPWithJitter.Analysis.I</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_jitter">ResponseTimeIterationFPWithJitter.Analysis.job_jitter</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_task">ResponseTimeIterationFPWithJitter.Analysis.job_task</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_deadline">ResponseTimeIterationFPWithJitter.Analysis.job_deadline</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.job_cost">ResponseTimeIterationFPWithJitter.Analysis.job_cost</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.max_steps">ResponseTimeIterationFPWithJitter.Analysis.max_steps</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.num_cpus">ResponseTimeIterationFPWithJitter.Analysis.num_cpus</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_test_succeeds">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_test_succeeds</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_global_scheduling_invariant">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_global_scheduling_invariant</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_no_parallelism">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_no_parallelism</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_completed_jobs_dont_execute">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_completed_jobs_dont_execute</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_jobs_execute_after_jitter">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_jobs_execute_after_jitter</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_at_least_one_cpu">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_at_least_one_cpu</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sporadic_tasks">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sporadic_tasks</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_job_parameters">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_job_parameters</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_all_jobs_from_taskset">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_all_jobs_from_taskset</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sorted_ts">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_sorted_ts</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_restricted_deadlines">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_restricted_deadlines</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_task_parameters">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_task_parameters</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_ts_is_a_set">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_ts_is_a_set</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_unique_priorities">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_unique_priorities</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_policy">ResponseTimeIterationFPWithJitter.Analysis.Proof.H_valid_policy</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.sched">ResponseTimeIterationFPWithJitter.Analysis.Proof.sched</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.ts">ResponseTimeIterationFPWithJitter.Analysis.Proof.ts</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_with_response_time">ResponseTimeIterationFPWithJitter.Analysis.task_with_response_time</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_jitter">ResponseTimeIterationFPWithJitter.Analysis.task_jitter</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_deadline">ResponseTimeIterationFPWithJitter.Analysis.task_deadline</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_period">ResponseTimeIterationFPWithJitter.Analysis.task_period</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.task_cost">ResponseTimeIterationFPWithJitter.Analysis.task_cost</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction.H_keeps_diverging">ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction.H_keeps_diverging</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.f">ResponseTimeIterationFP.Analysis.Convergence.f</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_no_larger_than_deadline">ResponseTimeIterationFP.Analysis.Convergence.H_no_larger_than_deadline</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_valid_task_parameters">ResponseTimeIterationFP.Analysis.Convergence.H_valid_task_parameters</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.H_test_succeeds">ResponseTimeIterationFP.Analysis.Convergence.H_test_succeeds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.rt_bounds">ResponseTimeIterationFP.Analysis.Convergence.rt_bounds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.tsk">ResponseTimeIterationFP.Analysis.Convergence.tsk</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.ts_hp">ResponseTimeIterationFP.Analysis.Convergence.ts_hp</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.higher_priority">ResponseTimeIterationFP.Analysis.higher_priority</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds">ResponseTimeIterationFP.Analysis.HighPriorityTasks.hp_bounds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_analysis_succeeds">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_analysis_succeeds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_priority_transitive">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_priority_transitive</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_sorted">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_sorted</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_a_set">ResponseTimeIterationFP.Analysis.HighPriorityTasks.H_task_set_is_a_set</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.R">ResponseTimeIterationFP.Analysis.HighPriorityTasks.R</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk">ResponseTimeIterationFP.Analysis.HighPriorityTasks.tsk</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp">ResponseTimeIterationFP.Analysis.HighPriorityTasks.ts_hp</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_task">ResponseTimeIterationFP.Analysis.job_task</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_deadline">ResponseTimeIterationFP.Analysis.job_deadline</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.job_cost">ResponseTimeIterationFP.Analysis.job_cost</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_test_succeeds">ResponseTimeIterationFP.Analysis.MainProof.H_test_succeeds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_global_scheduling_invariant">ResponseTimeIterationFP.Analysis.MainProof.H_global_scheduling_invariant</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_no_parallelism">ResponseTimeIterationFP.Analysis.MainProof.H_no_parallelism</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_completed_jobs_dont_execute">ResponseTimeIterationFP.Analysis.MainProof.H_completed_jobs_dont_execute</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_jobs_must_arrive_to_execute">ResponseTimeIterationFP.Analysis.MainProof.H_jobs_must_arrive_to_execute</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_at_least_one_cpu">ResponseTimeIterationFP.Analysis.MainProof.H_at_least_one_cpu</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_sporadic_tasks">ResponseTimeIterationFP.Analysis.MainProof.H_sporadic_tasks</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_valid_job_parameters">ResponseTimeIterationFP.Analysis.MainProof.H_valid_job_parameters</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_all_jobs_from_taskset">ResponseTimeIterationFP.Analysis.MainProof.H_all_jobs_from_taskset</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_sorted_ts">ResponseTimeIterationFP.Analysis.MainProof.H_sorted_ts</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_restricted_deadlines">ResponseTimeIterationFP.Analysis.MainProof.H_restricted_deadlines</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_valid_task_parameters">ResponseTimeIterationFP.Analysis.MainProof.H_valid_task_parameters</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_ts_is_a_set">ResponseTimeIterationFP.Analysis.MainProof.H_ts_is_a_set</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_total">ResponseTimeIterationFP.Analysis.MainProof.H_total</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_unique_priorities">ResponseTimeIterationFP.Analysis.MainProof.H_unique_priorities</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.H_transitive">ResponseTimeIterationFP.Analysis.MainProof.H_transitive</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job">ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_job</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task">ResponseTimeIterationFP.Analysis.MainProof.no_deadline_missed_by_task</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by">ResponseTimeIterationFP.Analysis.MainProof.response_time_bounded_by</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.sched">ResponseTimeIterationFP.Analysis.MainProof.sched</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof.ts">ResponseTimeIterationFP.Analysis.MainProof.ts</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.num_cpus">ResponseTimeIterationFP.Analysis.num_cpus</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_with_response_time">ResponseTimeIterationFP.Analysis.task_with_response_time</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_deadline">ResponseTimeIterationFP.Analysis.task_deadline</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_period">ResponseTimeIterationFP.Analysis.task_period</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.task_cost">ResponseTimeIterationFP.Analysis.task_cost</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.H_job_of_task">ResponseTime.BasicLemmas.AllJobs.H_job_of_task</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j">ResponseTime.BasicLemmas.AllJobs.j</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.R">ResponseTime.BasicLemmas.AllJobs.R</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.response_time_bound">ResponseTime.BasicLemmas.AllJobs.response_time_bound</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs.tsk">ResponseTime.BasicLemmas.AllJobs.tsk</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.H_completed_jobs_dont_execute">ResponseTime.BasicLemmas.H_completed_jobs_dont_execute</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_has_completed_by">ResponseTime.BasicLemmas.job_has_completed_by</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_task">ResponseTime.BasicLemmas.job_task</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.job_cost">ResponseTime.BasicLemmas.job_cost</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.sched">ResponseTime.BasicLemmas.sched</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j">ResponseTime.BasicLemmas.SpecificJob.j</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.R">ResponseTime.BasicLemmas.SpecificJob.R</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.response_time_bound">ResponseTime.BasicLemmas.SpecificJob.response_time_bound</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_has_completed_by">ResponseTime.ResponseTimeBound.job_has_completed_by</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_task">ResponseTime.ResponseTimeBound.job_task</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.job_cost">ResponseTime.ResponseTimeBound.job_cost</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.R">ResponseTime.ResponseTimeBound.R</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.sched">ResponseTime.ResponseTimeBound.sched</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound.tsk">ResponseTime.ResponseTimeBound.tsk</a> [in <a href="response_time.html">response_time</a>]<br/>
-<br/><br/><a name="variable_S"></a><h2>S </h2>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.H_valid_job">Schedulability.BasicLemmas.AllJobs.H_valid_job</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.H_job_of_task">Schedulability.BasicLemmas.AllJobs.H_job_of_task</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j">Schedulability.BasicLemmas.AllJobs.j</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.no_deadline_misses">Schedulability.BasicLemmas.AllJobs.no_deadline_misses</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk">Schedulability.BasicLemmas.AllJobs.tsk</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.H_completed_jobs_dont_execute">Schedulability.BasicLemmas.H_completed_jobs_dont_execute</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_task">Schedulability.BasicLemmas.job_task</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_deadline">Schedulability.BasicLemmas.job_deadline</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.job_cost">Schedulability.BasicLemmas.job_cost</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.sched">Schedulability.BasicLemmas.sched</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j">Schedulability.BasicLemmas.SpecificJob.j</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.no_deadline_miss">Schedulability.BasicLemmas.SpecificJob.no_deadline_miss</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_deadline">Schedulability.BasicLemmas.task_deadline</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_period">Schedulability.BasicLemmas.task_period</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.task_cost">Schedulability.BasicLemmas.task_cost</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.job_deadline">Schedulability.SchedulableDefs.job_deadline</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.job_cost">Schedulability.SchedulableDefs.job_cost</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.j">Schedulability.SchedulableDefs.ScheduleOfJobs.j</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.sched">Schedulability.SchedulableDefs.ScheduleOfJobs.sched</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.job_task">Schedulability.SchedulableDefs.ScheduleOfTasks.job_task</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sched">Schedulability.SchedulableDefs.ScheduleOfTasks.sched</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.tsk">Schedulability.SchedulableDefs.ScheduleOfTasks.tsk</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.H_job_of_task">ScheduleOfSporadicTask.BasicLemmas.H_job_of_task</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.j">ScheduleOfSporadicTask.BasicLemmas.j</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.jobs_dont_execute_after_completion">ScheduleOfSporadicTask.BasicLemmas.jobs_dont_execute_after_completion</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_task">ScheduleOfSporadicTask.BasicLemmas.job_task</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_deadline">ScheduleOfSporadicTask.BasicLemmas.job_deadline</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_cost">ScheduleOfSporadicTask.BasicLemmas.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sched">ScheduleOfSporadicTask.BasicLemmas.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_deadline">ScheduleOfSporadicTask.BasicLemmas.task_deadline</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_cost">ScheduleOfSporadicTask.BasicLemmas.task_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.tsk">ScheduleOfSporadicTask.BasicLemmas.tsk</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.valid_job">ScheduleOfSporadicTask.BasicLemmas.valid_job</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_task">ScheduleOfSporadicTask.ValidSchedule.job_task</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_cost">ScheduleOfSporadicTask.ValidSchedule.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.sched">ScheduleOfSporadicTask.ValidSchedule.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_task">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_task</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_cost">ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched">ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef.arr_seq">Schedule.ScheduleDef.arr_seq</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef.num_cpus">Schedule.ScheduleDef.num_cpus</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.j">Schedule.ScheduledJobs.j</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.job_cost">Schedule.ScheduledJobs.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs.sched">Schedule.ScheduledJobs.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Arrival.H_jobs_must_arrive">Schedule.ServiceLemmas.Arrival.H_jobs_must_arrive</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Completion.H_completed_jobs">Schedule.ServiceLemmas.Completion.H_completed_jobs</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.j">Schedule.ServiceLemmas.j</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.job_cost">Schedule.ServiceLemmas.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.NoParallelism.no_parallelism">Schedule.ServiceLemmas.NoParallelism.no_parallelism</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.sched">Schedule.ServiceLemmas.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules.job_cost">Schedule.ValidSchedules.job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules.sched">Schedule.ValidSchedules.sched</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.arr_seq">SporadicTaskArrival.ArrivalModels.arr_seq</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.job_task">SporadicTaskArrival.ArrivalModels.job_task</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels.task_period">SporadicTaskArrival.ArrivalModels.task_period</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task">SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline">SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_period">SporadicTaskset.TasksetDefs.TasksetProperties.task_period</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_cost">SporadicTaskset.TasksetDefs.TasksetProperties.task_cost</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.ts">SporadicTaskset.TasksetDefs.TasksetProperties.ts</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_deadline">SporadicTask.BasicTask.task_deadline</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_period">SporadicTask.BasicTask.task_period</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.task_cost">SporadicTask.BasicTask.task_cost</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.ValidParameters.tsk">SporadicTask.BasicTask.ValidParameters.tsk</a> [in <a href="task.html">task</a>]<br/>
-<br/><br/><a name="variable_T"></a><h2>T </h2>
-<a href="util_lemmas.html#Triple.p">Triple.p</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="variable_W"></a><h2>W </h2>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.period_positive">WorkloadBoundGuan.BasicLemmasCarry.period_positive</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.R">WorkloadBoundGuan.BasicLemmasCarry.R</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.task_period">WorkloadBoundGuan.BasicLemmasCarry.task_period</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.task_cost">WorkloadBoundGuan.BasicLemmasCarry.task_cost</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.tsk">WorkloadBoundGuan.BasicLemmasCarry.tsk</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.workload_bound_CI">WorkloadBoundGuan.BasicLemmasCarry.workload_bound_CI</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry.workload_bound_NC">WorkloadBoundGuan.BasicLemmasCarry.workload_bound_NC</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.arr_seq">WorkloadBoundGuan.ProofWorkloadBound.arr_seq</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.delta">WorkloadBoundGuan.ProofWorkloadBound.delta</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_response_time_bound">WorkloadBoundGuan.ProofWorkloadBound.H_response_time_bound</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_response_time_ge_cost">WorkloadBoundGuan.ProofWorkloadBound.H_response_time_ge_cost</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_no_deadline_misses_during_interval">WorkloadBoundGuan.ProofWorkloadBound.H_no_deadline_misses_during_interval</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_restricted_deadline">WorkloadBoundGuan.ProofWorkloadBound.H_restricted_deadline</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_valid_task_parameters">WorkloadBoundGuan.ProofWorkloadBound.H_valid_task_parameters</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_sporadic_tasks">WorkloadBoundGuan.ProofWorkloadBound.H_sporadic_tasks</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_no_parallelism">WorkloadBoundGuan.ProofWorkloadBound.H_no_parallelism</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_completed_jobs_dont_execute">WorkloadBoundGuan.ProofWorkloadBound.H_completed_jobs_dont_execute</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_jobs_must_arrive_to_execute">WorkloadBoundGuan.ProofWorkloadBound.H_jobs_must_arrive_to_execute</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.H_jobs_have_valid_parameters">WorkloadBoundGuan.ProofWorkloadBound.H_jobs_have_valid_parameters</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_has_completed_by">WorkloadBoundGuan.ProofWorkloadBound.job_has_completed_by</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_deadline">WorkloadBoundGuan.ProofWorkloadBound.job_deadline</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_task">WorkloadBoundGuan.ProofWorkloadBound.job_task</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.job_cost">WorkloadBoundGuan.ProofWorkloadBound.job_cost</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.no_deadline_misses_by">WorkloadBoundGuan.ProofWorkloadBound.no_deadline_misses_by</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.num_cpus">WorkloadBoundGuan.ProofWorkloadBound.num_cpus</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.R_tsk">WorkloadBoundGuan.ProofWorkloadBound.R_tsk</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.sched">WorkloadBoundGuan.ProofWorkloadBound.sched</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.schedule_of_platform">WorkloadBoundGuan.ProofWorkloadBound.schedule_of_platform</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.sched_of_platform">WorkloadBoundGuan.ProofWorkloadBound.sched_of_platform</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_deadline">WorkloadBoundGuan.ProofWorkloadBound.task_deadline</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_period">WorkloadBoundGuan.ProofWorkloadBound.task_period</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.task_cost">WorkloadBoundGuan.ProofWorkloadBound.task_cost</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.tsk">WorkloadBoundGuan.ProofWorkloadBound.tsk</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.t1">WorkloadBoundGuan.ProofWorkloadBound.t1</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound.workload_of">WorkloadBoundGuan.ProofWorkloadBound.workload_of</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.delta">WorkloadBoundGuan.WorkloadBoundCarry.delta</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.e">WorkloadBoundGuan.WorkloadBoundCarry.e</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.p">WorkloadBoundGuan.WorkloadBoundCarry.p</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.R_tsk">WorkloadBoundGuan.WorkloadBoundCarry.R_tsk</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.task_period">WorkloadBoundGuan.WorkloadBoundCarry.task_period</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.task_cost">WorkloadBoundGuan.WorkloadBoundCarry.task_cost</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry.tsk">WorkloadBoundGuan.WorkloadBoundCarry.tsk</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_R1_le_R2">WorkloadBound.BasicLemmas.H_R1_le_R2</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_R_lower_bound">WorkloadBound.BasicLemmas.H_R_lower_bound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.H_period_positive">WorkloadBound.BasicLemmas.H_period_positive</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.R1">WorkloadBound.BasicLemmas.R1</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.R2">WorkloadBound.BasicLemmas.R2</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.task_period">WorkloadBound.BasicLemmas.task_period</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.task_cost">WorkloadBound.BasicLemmas.task_cost</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.tsk">WorkloadBound.BasicLemmas.tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas.workload_bound">WorkloadBound.BasicLemmas.workload_bound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq">WorkloadBound.ProofWorkloadBound.arr_seq</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.delta">WorkloadBound.ProofWorkloadBound.delta</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_response_time_bound">WorkloadBound.ProofWorkloadBound.H_response_time_bound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_response_time_ge_cost">WorkloadBound.ProofWorkloadBound.H_response_time_ge_cost</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_no_deadline_misses_during_interval">WorkloadBound.ProofWorkloadBound.H_no_deadline_misses_during_interval</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_restricted_deadline">WorkloadBound.ProofWorkloadBound.H_restricted_deadline</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_valid_task_parameters">WorkloadBound.ProofWorkloadBound.H_valid_task_parameters</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_sporadic_tasks">WorkloadBound.ProofWorkloadBound.H_sporadic_tasks</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_no_parallelism">WorkloadBound.ProofWorkloadBound.H_no_parallelism</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_completed_jobs_dont_execute">WorkloadBound.ProofWorkloadBound.H_completed_jobs_dont_execute</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_jobs_must_arrive_to_execute">WorkloadBound.ProofWorkloadBound.H_jobs_must_arrive_to_execute</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.H_jobs_have_valid_parameters">WorkloadBound.ProofWorkloadBound.H_jobs_have_valid_parameters</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_has_completed_by">WorkloadBound.ProofWorkloadBound.job_has_completed_by</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_deadline">WorkloadBound.ProofWorkloadBound.job_deadline</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task">WorkloadBound.ProofWorkloadBound.job_task</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost">WorkloadBound.ProofWorkloadBound.job_cost</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs">WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k">WorkloadBound.ProofWorkloadBound.MainProof.n_k</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.order">WorkloadBound.ProofWorkloadBound.MainProof.order</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs">WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2">WorkloadBound.ProofWorkloadBound.MainProof.t2</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.H_at_least_one_job">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.H_at_least_one_job</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.H_at_least_two_jobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.H_at_least_two_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound">WorkloadBound.ProofWorkloadBound.MainProof.workload_bound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.no_deadline_misses_by">WorkloadBound.ProofWorkloadBound.no_deadline_misses_by</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk">WorkloadBound.ProofWorkloadBound.R_tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched">WorkloadBound.ProofWorkloadBound.sched</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline">WorkloadBound.ProofWorkloadBound.task_deadline</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period">WorkloadBound.ProofWorkloadBound.task_period</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost">WorkloadBound.ProofWorkloadBound.task_cost</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk">WorkloadBound.ProofWorkloadBound.tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1">WorkloadBound.ProofWorkloadBound.t1</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.workload_of">WorkloadBound.ProofWorkloadBound.workload_of</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.delta">WorkloadBound.WorkloadBoundDef.delta</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.R_tsk">WorkloadBound.WorkloadBoundDef.R_tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_period">WorkloadBound.WorkloadBoundDef.task_period</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_cost">WorkloadBound.WorkloadBoundDef.task_cost</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk">WorkloadBound.WorkloadBoundDef.tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.period_positive">WorkloadWithJitter.BasicLemmas.period_positive</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.R">WorkloadWithJitter.BasicLemmas.R</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.R_lower_bound">WorkloadWithJitter.BasicLemmas.R_lower_bound</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_jitter">WorkloadWithJitter.BasicLemmas.task_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_period">WorkloadWithJitter.BasicLemmas.task_period</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.task_cost">WorkloadWithJitter.BasicLemmas.task_cost</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.tsk">WorkloadWithJitter.BasicLemmas.tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas.workload_bound">WorkloadWithJitter.BasicLemmas.workload_bound</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.arr_seq">WorkloadWithJitter.ProofWorkloadBoundJitter.arr_seq</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions.tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions.tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.delta">WorkloadWithJitter.ProofWorkloadBoundJitter.delta</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.H_completed_jobs_dont_execute">WorkloadWithJitter.ProofWorkloadBoundJitter.H_completed_jobs_dont_execute</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.H_jobs_must_arrive_after_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.H_jobs_must_arrive_after_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.jobs_have_valid_parameters">WorkloadWithJitter.ProofWorkloadBoundJitter.jobs_have_valid_parameters</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.job_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.job_deadline</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_task">WorkloadWithJitter.ProofWorkloadBoundJitter.job_task</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.job_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.job_cost</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.no_deadline_misses_during_interval">WorkloadWithJitter.ProofWorkloadBoundJitter.no_deadline_misses_during_interval</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.no_parallelism">WorkloadWithJitter.ProofWorkloadBoundJitter.no_parallelism</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.num_cpus">WorkloadWithJitter.ProofWorkloadBoundJitter.num_cpus</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_ge_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_ge_cost</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_bound">WorkloadWithJitter.ProofWorkloadBoundJitter.response_time_bound</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.restricted_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.restricted_deadline</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.R_tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.R_tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sched">WorkloadWithJitter.ProofWorkloadBoundJitter.sched</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.schedule_of_platform">WorkloadWithJitter.ProofWorkloadBoundJitter.schedule_of_platform</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sched_of_platform">WorkloadWithJitter.ProofWorkloadBoundJitter.sched_of_platform</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.sporadic_tasks">WorkloadWithJitter.ProofWorkloadBoundJitter.sporadic_tasks</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_jitter">WorkloadWithJitter.ProofWorkloadBoundJitter.task_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_deadline">WorkloadWithJitter.ProofWorkloadBoundJitter.task_deadline</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_period">WorkloadWithJitter.ProofWorkloadBoundJitter.task_period</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.task_cost">WorkloadWithJitter.ProofWorkloadBoundJitter.task_cost</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.tsk">WorkloadWithJitter.ProofWorkloadBoundJitter.tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.t1">WorkloadWithJitter.ProofWorkloadBoundJitter.t1</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.valid_task_parameters">WorkloadWithJitter.ProofWorkloadBoundJitter.valid_task_parameters</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.workload_bound">WorkloadWithJitter.ProofWorkloadBoundJitter.workload_bound</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.delta">WorkloadWithJitter.WorkloadBoundWithJitter.delta</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.job_task">WorkloadWithJitter.WorkloadBoundWithJitter.job_task</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.R_tsk">WorkloadWithJitter.WorkloadBoundWithJitter.R_tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.sched">WorkloadWithJitter.WorkloadBoundWithJitter.sched</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_jitter">WorkloadWithJitter.WorkloadBoundWithJitter.task_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_period">WorkloadWithJitter.WorkloadBoundWithJitter.task_period</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.task_cost">WorkloadWithJitter.WorkloadBoundWithJitter.task_cost</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter.tsk">WorkloadWithJitter.WorkloadBoundWithJitter.tsk</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.job_task">Workload.WorkloadDef.job_task</a> [in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.sched">Workload.WorkloadDef.sched</a> [in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef.tsk">Workload.WorkloadDef.tsk</a> [in <a href="workload.html">workload</a>]<br/>
-<br/><br/><hr/>
-<h1>Library Index</h1>
-<a name="library_A"></a><h2>A </h2>
-<a href="arrival_sequence.html">arrival_sequence</a> <br/>
-<br/><br/><a name="library_B"></a><h2>B </h2>
-<a href="bertogna_edf_comp.html">bertogna_edf_comp</a> <br/>
-<a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a> <br/>
-<a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a> <br/>
-<a href="bertogna_fp_comp.html">bertogna_fp_comp</a> <br/>
-<a href="bertogna_fp_theory.html">bertogna_fp_theory</a> <br/>
-<a href="bertogna_edf_theory.html">bertogna_edf_theory</a> <br/>
-<br/><br/><a name="library_E"></a><h2>E </h2>
-<a href="extralib.html">extralib</a> <br/>
-<a href="ExtraRelations.html">ExtraRelations</a> <br/>
-<br/><br/><a name="library_G"></a><h2>G </h2>
-<a href="guan_fp_comp.html">guan_fp_comp</a> <br/>
-<a href="guan_fp_theory.html">guan_fp_theory</a> <br/>
-<br/><br/><a name="library_I"></a><h2>I </h2>
-<a href="interference.html">interference</a> <br/>
-<a href="interference_bound_edf.html">interference_bound_edf</a> <br/>
-<br/><br/><a name="library_J"></a><h2>J </h2>
-<a href="job.html">job</a> <br/>
-<br/><br/><a name="library_P"></a><h2>P </h2>
-<a href="platform.html">platform</a> <br/>
-<a href="priority.html">priority</a> <br/>
-<br/><br/><a name="library_R"></a><h2>R </h2>
-<a href="response_time.html">response_time</a> <br/>
-<br/><br/><a name="library_S"></a><h2>S </h2>
-<a href="schedulability.html">schedulability</a> <br/>
-<a href="schedule.html">schedule</a> <br/>
-<a href="ssromega.html">ssromega</a> <br/>
-<br/><br/><a name="library_T"></a><h2>T </h2>
-<a href="task.html">task</a> <br/>
-<a href="task_arrival.html">task_arrival</a> <br/>
-<br/><br/><a name="library_U"></a><h2>U </h2>
-<a href="util_lemmas.html">util_lemmas</a> <br/>
-<a href="util_divround.html">util_divround</a> <br/>
-<br/><br/><a name="library_V"></a><h2>V </h2>
-<a href="Vbase.html">Vbase</a> <br/>
-<br/><br/><a name="library_W"></a><h2>W </h2>
-<a href="workload.html">workload</a> <br/>
-<a href="workload_jitter.html">workload_jitter</a> <br/>
-<a href="workload_guan.html">workload_guan</a> <br/>
-<a href="workload_bound.html">workload_bound</a> <br/>
-<br/><br/><hr/>
-<h1>Lemma Index</h1>
-<a name="lemma_A"></a><h2>A </h2>
-<a href="ExtraRelations.html#acyclic_mon">acyclic_mon</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#addmovl">addmovl</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#addmovr">addmovr</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#addnb">addnb</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#andP">andP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#appP">appP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_B"></a><h2>B </h2>
-<a href="util_lemmas.html#before_ij_implies_leq_ij">before_ij_implies_leq_ij</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#beq_sym">beq_sym</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#beq_refl">beq_refl</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#bigcat_ord_uniq">bigcat_ord_uniq</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#big_mkord_ord">big_mkord_ord</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_C"></a><h2>C </h2>
-<a href="ExtraRelations.html#clos_trans_imm2">clos_trans_imm2</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_imm">clos_trans_imm</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_eq_union">clos_trans_restr_eq_union</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_trans_cycle">clos_trans_restr_trans_cycle</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_trans_mid">clos_trans_restr_trans_mid</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_disj_rel">clos_trans_disj_rel</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr">clos_trans_restr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_monotonic">clos_trans_monotonic</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_inclusion_clos_refl_trans">clos_trans_inclusion_clos_refl_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_inclusion">clos_trans_inclusion</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restr_eqD">clos_trans_restr_eqD</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_restrD">clos_trans_restrD</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_of_clos_trans1">clos_trans_of_clos_trans1</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_eq">clos_trans_eq</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_of_transitive">clos_trans_of_transitive</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_in_rt">clos_trans_in_rt</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_refl_transE">clos_refl_transE</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_refl_trans_mon">clos_refl_trans_mon</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#clos_trans_mon">clos_trans_mon</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#comp_relation_trans">comp_relation_trans</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#contra">contra</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#cycle_disj">cycle_disj</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u_1">cycle_decomp_u_1</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u_total">cycle_decomp_u_total</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#cycle_decomp_u1">cycle_decomp_u1</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="lemma_D"></a><h2>D </h2>
-<a href="Vbase.html#decPcases">decPcases</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#divSn_cases">divSn_cases</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_bounds_interference">EDFSpecificBound.interference_bound_edf_bounds_interference</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_multiple_jobs">EDFSpecificBound.interference_bound_edf_holds_for_multiple_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_concatenation_of_intervals">EDFSpecificBound.interference_bound_edf_simpl_by_concatenation_of_intervals</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_bounding_interference_with_interval_lengths">EDFSpecificBound.interference_bound_edf_bounding_interference_with_interval_lengths</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_bounded_by_response_time">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_bounded_by_response_time</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_moving_to_left_side">EDFSpecificBound.interference_bound_edf_simpl_by_moving_to_left_side</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_remainder_ge_slack">EDFSpecificBound.interference_bound_edf_remainder_ge_slack</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_n_k_equals_num_mid_jobs_plus_one">EDFSpecificBound.interference_bound_edf_n_k_equals_num_mid_jobs_plus_one</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_middle_and_last_jobs">EDFSpecificBound.interference_bound_edf_holds_for_middle_and_last_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_n_k_covers_middle_jobs_plus_one">EDFSpecificBound.interference_bound_edf_n_k_covers_middle_jobs_plus_one</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_many_periods_in_between">EDFSpecificBound.interference_bound_edf_many_periods_in_between</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_completed_on_time">EDFSpecificBound.interference_bound_edf_j_fst_completed_on_time</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_last_job_arrives_before_end_of_interval">EDFSpecificBound.interference_bound_edf_last_job_arrives_before_end_of_interval</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_before_j_lst">EDFSpecificBound.interference_bound_edf_j_fst_before_j_lst</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_lst_deadline">EDFSpecificBound.interference_bound_edf_j_lst_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_lst_is_job_of_tsk_k">EDFSpecificBound.interference_bound_edf_j_lst_is_job_of_tsk_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_a_single_job">EDFSpecificBound.interference_bound_edf_holds_for_a_single_job</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_slack">EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_slack</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_small_slack">EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_small_slack</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_big_slack">EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_big_slack</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_response_time_bound_of_j_fst_after_interval">EDFSpecificBound.interference_bound_edf_response_time_bound_of_j_fst_after_interval</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_single_job_that_completes_on_time">EDFSpecificBound.interference_bound_edf_holds_for_single_job_that_completes_on_time</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_when_there's_one_job">EDFSpecificBound.interference_bound_edf_simpl_when_there's_one_job</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval">EDFSpecificBound.interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_i_deadline">EDFSpecificBound.interference_bound_edf_j_i_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_deadline">EDFSpecificBound.interference_bound_edf_j_fst_deadline</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_j_fst_is_job_of_tsk_k">EDFSpecificBound.interference_bound_edf_j_fst_is_job_of_tsk_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_at_least_one_job">EDFSpecificBound.interference_bound_edf_at_least_one_job</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_holds_for_at_most_n_k_jobs">EDFSpecificBound.interference_bound_edf_holds_for_at_most_n_k_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_under_edf_implies_shorter_deadlines">EDFSpecificBound.interference_under_edf_implies_shorter_deadlines</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_interference_le_task_cost">EDFSpecificBound.interference_bound_edf_interference_le_task_cost</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_jobs_ordered_by_arrival">EDFSpecificBound.interference_bound_edf_jobs_ordered_by_arrival</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_all_jobs_from_tsk_k">EDFSpecificBound.interference_bound_edf_all_jobs_from_tsk_k</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_job_in_same_sequence">EDFSpecificBound.interference_bound_edf_job_in_same_sequence</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_sorting_interfering_jobs">EDFSpecificBound.interference_bound_edf_simpl_by_sorting_interfering_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_simpl_by_filtering_interfering_jobs">EDFSpecificBound.interference_bound_edf_simpl_by_filtering_interfering_jobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.interference_bound_edf_use_another_definition">EDFSpecificBound.interference_bound_edf_use_another_definition</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#elimF">elimF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimFn">elimFn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimN">elimN</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimNf">elimNf</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimNTF">elimNTF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimT">elimT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTF">elimTF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTFn">elimTFn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#elimTn">elimTn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqE">eqE</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqP">eqP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#equivPif">equivPif</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#equivPifn">equivPifn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#eq_ext_tuple_to_fun_index">eq_ext_tuple_to_fun_index</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#eq_bigr_ord">eq_bigr_ord</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#eq_fun_ord_to_nat">eq_fun_ord_to_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#exists_unzip2">exists_unzip2</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#exists_inPQ_nat">exists_inPQ_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#exists_inP_nat">exists_inP_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#extend_sum">extend_sum</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ex2E">ex2E</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_F"></a><h2>F </h2>
-<a href="util_lemmas.html#forall_inP_nat">forall_inP_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon_generic">fun_mon_iter_mon_generic</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon_helper">fun_mon_iter_mon_helper</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#fun_mon_iter_mon">fun_mon_iter_mon</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#fun_if">fun_if</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_I"></a><h2>I </h2>
-<a href="Vbase.html#idP">idP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#idPn">idPn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#iffP">iffP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ifP">ifP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_arg">if_arg</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_neg">if_neg</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#if_same">if_same</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="interference.html#Interference.complement_of_interf_equals_service">Interference.complement_of_interf_equals_service</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.interference_le_interference_joblist">Interference.interference_le_interference_joblist</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.interference_eq_interference_joblist">Interference.interference_eq_interference_joblist</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference_le_service">Interference.job_interference_le_service</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference_le_delta">Interference.job_interference_le_delta</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference_le_workload">Interference.task_interference_le_workload</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.total_interference_le_delta">Interference.total_interference_le_delta</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="Vbase.html#introF">introF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introFn">introFn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introN">introN</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introNf">introNf</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introNTF">introNTF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introP">introP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introT">introT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTF">introTF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTFn">introTFn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#introTn">introTn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#In_undup">In_undup</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#In_flatten">In_flatten</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filterD">In_filterD</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filterI">In_filterI</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_filter">In_filter</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_map">In_map</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_mapD">In_mapD</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_mapI">In_mapI</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_revD">In_revD</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_revI">In_revI</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_rev">In_rev</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_app">In_app</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appD">In_appD</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appI2">In_appI2</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_appI1">In_appI1</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_dec">In_dec</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_split">In_split</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_nil">In_nil</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_cons">In_cons</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#In_eq">In_eq</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="ExtraRelations.html#irreflexive_inclusion">irreflexive_inclusion</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#is_total_restr">is_total_restr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#iter_fix">iter_fix</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_L"></a><h2>L </h2>
-<a href="util_lemmas.html#leq_big_max">leq_big_max</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#leq_ij_implies_before_ij">leq_ij_implies_before_ij</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#leq_as_delta">leq_as_delta</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ltn_div_trunc">ltn_div_trunc</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ltSnm">ltSnm</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_M"></a><h2>M </h2>
-<a href="ExtraRelations.html#max_elt_clos_trans">max_elt_clos_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#mem_zip_exists">mem_zip_exists</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_zip">mem_zip</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_powerset">mem_powerset</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_ord_exists">mem_bigcat_ord_exists</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_ord">mem_bigcat_ord</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#mem_bigcat_nat">mem_bigcat_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#min_lt_same">min_lt_same</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_N"></a><h2>N </h2>
-<a href="Vbase.html#nandP">nandP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbF">negbF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbFE">negbFE</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbLR">negbLR</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbNE">negbNE</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbRL">negbRL</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbT">negbT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negbTE">negbTE</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negP">negP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negPf">negPf</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#negPn">negPn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#neqP">neqP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#NoDup_undup">NoDup_undup</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#NoDup_mapD">NoDup_mapD</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#NoDup_eq_one">NoDup_eq_one</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#NoDup_filter">NoDup_filter</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_left">nodup_append_left</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_right">nodup_append_right</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append">nodup_append</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_app">nodup_app</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_cons">nodup_cons</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_append_commut">nodup_append_commut</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_map">nodup_map</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#nodup_one">nodup_one</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="Vbase.html#norP">norP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_O"></a><h2>O </h2>
-<a href="ExtraRelations.html#one_ext_total_elem">one_ext_total_elem</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_irr">one_ext_irr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_trans">one_ext_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#one_ext_extends">one_ext_extends</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#order_sorted_rcons">order_sorted_rcons</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#orP">orP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_P"></a><h2>P </h2>
-<a href="ExtraRelations.html#path_decomp_u_1">path_decomp_u_1</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#path_decomp_u_total">path_decomp_u_total</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#path_decomp_u1">path_decomp_u1</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="extralib.html#Permutation_NoDup">Permutation_NoDup</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="extralib.html#perm_from_subset">perm_from_subset</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="platform.html#Platform.cpus_busy_with_interfering_tasks">Platform.cpus_busy_with_interfering_tasks</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.interfering_job_has_higher_eq_prio">Platform.interfering_job_has_higher_eq_prio</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.scheduled_jobs_unique">Platform.scheduled_jobs_unique</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="util_lemmas.html#prev_le_next">prev_le_next</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="priority.html#Priority.dm_is_valid">Priority.dm_is_valid</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.edf_valid_policy">Priority.edf_valid_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.edf_jlfp">Priority.edf_jlfp</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_jlfp">Priority.fp_is_jlfp</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.rm_is_valid">Priority.rm_is_valid</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_fp_is_valid_jldp">Priority.valid_fp_is_valid_jldp</a> [in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="lemma_R"></a><h2>R </h2>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_cirinei_response_time_bound_edf">ResponseTimeAnalysisEDF.bertogna_cirinei_response_time_bound_edf</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_exists_task_that_exceeds_bound">ResponseTimeAnalysisEDF.bertogna_edf_exists_task_that_exceeds_bound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_sum_exceeds_total_interference">ResponseTimeAnalysisEDF.bertogna_edf_sum_exceeds_total_interference</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_minimum_exceeds_interference">ResponseTimeAnalysisEDF.bertogna_edf_minimum_exceeds_interference</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_helper_lemma">ResponseTimeAnalysisEDF.bertogna_edf_helper_lemma</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_all_cpus_busy">ResponseTimeAnalysisEDF.bertogna_edf_all_cpus_busy</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_too_much_interference">ResponseTimeAnalysisEDF.bertogna_edf_too_much_interference</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_specific_bound_holds">ResponseTimeAnalysisEDF.bertogna_edf_specific_bound_holds</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_workload_bounds_interference">ResponseTimeAnalysisEDF.bertogna_edf_workload_bounds_interference</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_R_other_ge_cost">ResponseTimeAnalysisEDF.bertogna_edf_R_other_ge_cost</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.bertogna_edf_tsk_other_in_ts">ResponseTimeAnalysisEDF.bertogna_edf_tsk_other_in_ts</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_cirinei_response_time_bound_fp">ResponseTimeAnalysisFP.bertogna_cirinei_response_time_bound_fp</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_exists_task_that_exceeds_bound">ResponseTimeAnalysisFP.bertogna_fp_exists_task_that_exceeds_bound</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_sum_exceeds_total_interference">ResponseTimeAnalysisFP.bertogna_fp_sum_exceeds_total_interference</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_minimum_exceeds_interference">ResponseTimeAnalysisFP.bertogna_fp_minimum_exceeds_interference</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_helper_lemma">ResponseTimeAnalysisFP.bertogna_fp_helper_lemma</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_all_cpus_busy">ResponseTimeAnalysisFP.bertogna_fp_all_cpus_busy</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_too_much_interference">ResponseTimeAnalysisFP.bertogna_fp_too_much_interference</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_workload_bounds_interference">ResponseTimeAnalysisFP.bertogna_fp_workload_bounds_interference</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_tsk_other_interferes">ResponseTimeAnalysisFP.bertogna_fp_tsk_other_interferes</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.bertogna_fp_tsk_other_in_ts">ResponseTimeAnalysisFP.bertogna_fp_tsk_other_in_ts</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.guan_response_time_bound_fp">ResponseTimeAnalysisGuan.guan_response_time_bound_fp</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.bertogna_cirinei_response_time_bound_fp_with_jitter">ResponseTimeAnalysisJitter.bertogna_cirinei_response_time_bound_fp_with_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.all_le_transitive">ResponseTimeIterationEDF.all_le_transitive</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.all_le_reflexive">ResponseTimeIterationEDF.all_le_reflexive</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_rt_grows_too_much">ResponseTimeIterationEDF.bertogna_edf_comp_rt_grows_too_much</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_increases">ResponseTimeIterationEDF.bertogna_edf_comp_f_increases</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_early">ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_early</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_with_no_tasks">ResponseTimeIterationEDF.bertogna_edf_comp_f_converges_with_no_tasks</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_monotonic">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_monotonic</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_order">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_order</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_minimum">ResponseTimeIterationEDF.bertogna_edf_comp_iteration_preserves_minimum</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_analysis_yields_response_time_bounds">ResponseTimeIterationEDF.edf_analysis_yields_response_time_bounds</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_converges">ResponseTimeIterationEDF.edf_claimed_bounds_converges</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_converges_helper">ResponseTimeIterationEDF.edf_claimed_bounds_converges_helper</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_has_R_for_every_task">ResponseTimeIterationEDF.edf_claimed_bounds_has_R_for_every_task</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_le_deadline">ResponseTimeIterationEDF.edf_claimed_bounds_le_deadline</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_ge_cost">ResponseTimeIterationEDF.edf_claimed_bounds_ge_cost</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_size">ResponseTimeIterationEDF.edf_claimed_bounds_size</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_iteration">ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_iteration</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_update_bound">ResponseTimeIterationEDF.edf_claimed_bounds_unzip1_update_bound</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.interference_bound_edf_monotonic">ResponseTimeIterationEDF.interference_bound_edf_monotonic</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.jobs_schedulable_by_edf_rta">ResponseTimeIterationEDF.jobs_schedulable_by_edf_rta</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.taskset_schedulable_by_edf_rta">ResponseTimeIterationEDF.taskset_schedulable_by_edf_rta</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.guan_fp_schedulability_test_yields_response_time_bounds">ResponseTimeIterationFPGuan.guan_fp_schedulability_test_yields_response_time_bounds</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.jobs_with_jitter_schedulable_by_guan_fp_rta">ResponseTimeIterationFPGuan.jobs_with_jitter_schedulable_by_guan_fp_rta</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta_fold">ResponseTimeIterationFPGuan.per_task_rta_fold</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta_converges">ResponseTimeIterationFPGuan.per_task_rta_converges</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_has_response_time_bounds">ResponseTimeIterationFPGuan.R_list_has_response_time_bounds</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_unzip1">ResponseTimeIterationFPGuan.R_list_unzip1</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_non_empty">ResponseTimeIterationFPGuan.R_list_non_empty</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_ge_cost">ResponseTimeIterationFPGuan.R_list_ge_cost</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_le_deadline">ResponseTimeIterationFPGuan.R_list_le_deadline</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_response_time">ResponseTimeIterationFPGuan.R_list_rcons_response_time</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_task">ResponseTimeIterationFPGuan.R_list_rcons_task</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_rcons_prefix">ResponseTimeIterationFPGuan.R_list_rcons_prefix</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.taskset_schedulable_by_guan_fp_rta">ResponseTimeIterationFPGuan.taskset_schedulable_by_guan_fp_rta</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.fp_schedulability_test_with_jitter_yields_response_time_bounds">ResponseTimeIterationFPWithJitter.fp_schedulability_test_with_jitter_yields_response_time_bounds</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.jobs_with_jitter_schedulable_by_fp_rta">ResponseTimeIterationFPWithJitter.jobs_with_jitter_schedulable_by_fp_rta</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta_fold">ResponseTimeIterationFPWithJitter.per_task_rta_fold</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta_converges">ResponseTimeIterationFPWithJitter.per_task_rta_converges</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_has_response_time_bounds">ResponseTimeIterationFPWithJitter.R_list_has_response_time_bounds</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_unzip1">ResponseTimeIterationFPWithJitter.R_list_unzip1</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_non_empty">ResponseTimeIterationFPWithJitter.R_list_non_empty</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_ge_cost">ResponseTimeIterationFPWithJitter.R_list_ge_cost</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_le_deadline">ResponseTimeIterationFPWithJitter.R_list_le_deadline</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_response_time">ResponseTimeIterationFPWithJitter.R_list_rcons_response_time</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_task">ResponseTimeIterationFPWithJitter.R_list_rcons_task</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_rcons_prefix">ResponseTimeIterationFPWithJitter.R_list_rcons_prefix</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.taskset_with_jitter_schedulable_by_fp_rta">ResponseTimeIterationFPWithJitter.taskset_with_jitter_schedulable_by_fp_rta</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_rt_grows_too_much">ResponseTimeIterationFP.bertogna_fp_comp_rt_grows_too_much</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_increases">ResponseTimeIterationFP.bertogna_fp_comp_f_increases</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_converges_early">ResponseTimeIterationFP.bertogna_fp_comp_f_converges_early</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.bertogna_fp_comp_f_monotonic">ResponseTimeIterationFP.bertogna_fp_comp_f_monotonic</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_analysis_yields_response_time_bounds">ResponseTimeIterationFP.fp_analysis_yields_response_time_bounds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_unzip1">ResponseTimeIterationFP.fp_claimed_bounds_unzip1</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_non_empty">ResponseTimeIterationFP.fp_claimed_bounds_non_empty</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_ge_cost">ResponseTimeIterationFP.fp_claimed_bounds_ge_cost</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_le_deadline">ResponseTimeIterationFP.fp_claimed_bounds_le_deadline</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_response_time">ResponseTimeIterationFP.fp_claimed_bounds_rcons_response_time</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_task">ResponseTimeIterationFP.fp_claimed_bounds_rcons_task</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds_rcons_prefix">ResponseTimeIterationFP.fp_claimed_bounds_rcons_prefix</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.jobs_schedulable_by_fp_rta">ResponseTimeIterationFP.jobs_schedulable_by_fp_rta</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta_converges">ResponseTimeIterationFP.per_task_rta_converges</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta_fold">ResponseTimeIterationFP.per_task_rta_fold</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.taskset_schedulable_by_fp_rta">ResponseTimeIterationFP.taskset_schedulable_by_fp_rta</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="response_time.html#ResponseTime.cumulative_service_after_task_rt_zero">ResponseTime.cumulative_service_after_task_rt_zero</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.cumulative_service_after_job_rt_zero">ResponseTime.cumulative_service_after_job_rt_zero</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.service_after_task_rt_zero">ResponseTime.service_after_task_rt_zero</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.service_after_job_rt_zero">ResponseTime.service_after_job_rt_zero</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="ExtraRelations.html#restr_eq_union">restr_eq_union</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_rel_trans">restr_rel_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#revert_comp_relation">revert_comp_relation</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#rt_t_trans">rt_t_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="lemma_S"></a><h2>S </h2>
-<a href="Vbase.html#sameP">sameP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#same_relation_restr">same_relation_restr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_trans">same_relation_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_sym">same_relation_sym</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#same_relation_refl">same_relation_refl</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="schedulability.html#Schedulability.cumulative_service_after_task_deadline_zero">Schedulability.cumulative_service_after_task_deadline_zero</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.cumulative_service_after_job_deadline_zero">Schedulability.cumulative_service_after_job_deadline_zero</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.service_after_task_deadline_zero">Schedulability.service_after_task_deadline_zero</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.service_after_job_deadline_zero">Schedulability.service_after_job_deadline_zero</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.cumulative_service_le_task_cost">ScheduleOfSporadicTask.cumulative_service_le_task_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.arrival_before_jitter">ScheduleOfTaskWithJitter.arrival_before_jitter</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completion_monotonic">Schedule.completion_monotonic</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_before_job_arrival_zero">Schedule.cumulative_service_before_job_arrival_zero</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_le_job_cost">Schedule.cumulative_service_le_job_cost</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.cumulative_service_le_delta">Schedule.cumulative_service_le_delta</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.job_scheduled_during_interval">Schedule.job_scheduled_during_interval</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.not_scheduled_no_service">Schedule.not_scheduled_no_service</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_before_arrival_eq_service_during">Schedule.service_before_arrival_eq_service_during</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_before_job_arrival_zero">Schedule.service_before_job_arrival_zero</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_at_most_one">Schedule.service_at_most_one</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="util_lemmas.html#size_bigcat_ord">size_bigcat_ord</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sorted_rcons_prefix">sorted_rcons_prefix</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#strong_ind_lt">strong_ind_lt</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#strong_ind">strong_ind</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh1">subh1</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh2">subh2</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh3">subh3</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subh4">subh4</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#subndiv_eq_mod">subndiv_eq_mod</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_nat_eq0_nat">sum_nat_eq0_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_diff">sum_diff</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#sum_diff_monotonic">sum_diff_monotonic</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="lemma_T"></a><h2>T </h2>
-<a href="util_lemmas.html#telescoping_sum">telescoping_sum</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#total_immediate_unique">total_immediate_unique</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_inv">tot_ext_inv</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_irr">tot_ext_irr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_trans">tot_ext_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#tot_ext_extends">tot_ext_extends</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#trans_irr_acyclic">trans_irr_acyclic</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#t_rt_step">t_rt_step</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#t_step_rt">t_step_rt</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#t_rt_trans">t_rt_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="lemma_U"></a><h2>U </h2>
-<a href="ExtraRelations.html#union_restr">union_restr</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#upward_clos_trans">upward_clos_trans</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="lemma_V"></a><h2>V </h2>
-<a href="Vbase.html#vlib__beq_rewrite">vlib__beq_rewrite</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__eqb_split">vlib__eqb_split</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__norb_split">vlib__norb_split</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__orb_split">vlib__orb_split</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__nandb_split">vlib__nandb_split</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__andb_split">vlib__andb_split</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__negb_rewrite">vlib__negb_rewrite</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__internal_eqP">vlib__internal_eqP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__not_false_is_true">vlib__not_false_is_true</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#vlib__true_is_true">vlib__true_is_true</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_W"></a><h2>W </h2>
-<a href="workload_guan.html#WorkloadBoundGuan.W_CI_monotonic">WorkloadBoundGuan.W_CI_monotonic</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_NC_monotonic">WorkloadBoundGuan.W_NC_monotonic</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bounded_by_W">WorkloadBound.workload_bounded_by_W</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_equals_num_mid_jobs_plus_1">WorkloadBound.workload_bound_n_k_equals_num_mid_jobs_plus_1</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_equals_num_mid_jobs">WorkloadBound.workload_bound_n_k_equals_num_mid_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_n_k_covers_middle_jobs">WorkloadBound.workload_bound_n_k_covers_middle_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_helper_lemma">WorkloadBound.workload_bound_helper_lemma</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_many_periods_in_between">WorkloadBound.workload_bound_many_periods_in_between</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_service_of_middle_jobs">WorkloadBound.workload_bound_service_of_middle_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_expression_with_first_and_last">WorkloadBound.workload_bound_simpl_expression_with_first_and_last</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_service_of_first_and_last_jobs">WorkloadBound.workload_bound_service_of_first_and_last_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_last_job_arrives_before_end_of_interval">WorkloadBound.workload_bound_last_job_arrives_before_end_of_interval</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_response_time_of_first_job_inside_interval">WorkloadBound.workload_bound_response_time_of_first_job_inside_interval</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_j_lst_is_job_of_tsk">WorkloadBound.workload_bound_j_lst_is_job_of_tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_holds_for_a_single_job">WorkloadBound.workload_bound_holds_for_a_single_job</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_j_fst_is_job_of_tsk">WorkloadBound.workload_bound_j_fst_is_job_of_tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_holds_for_at_most_n_k_jobs">WorkloadBound.workload_bound_holds_for_at_most_n_k_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_jobs_ordered_by_arrival">WorkloadBound.workload_bound_jobs_ordered_by_arrival</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_all_jobs_from_tsk">WorkloadBound.workload_bound_all_jobs_from_tsk</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_job_in_same_sequence">WorkloadBound.workload_bound_job_in_same_sequence</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_by_sorting_interfering_jobs">WorkloadBound.workload_bound_simpl_by_sorting_interfering_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.workload_bound_simpl_by_filtering_interfering_jobs">WorkloadBound.workload_bound_simpl_by_filtering_interfering_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.W_monotonic">WorkloadBound.W_monotonic</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.workload_bounded_by_W_jitter">WorkloadWithJitter.workload_bounded_by_W_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.W_jitter_monotonic">WorkloadWithJitter.W_jitter_monotonic</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload.html#Workload.workload_eq_workload_joblist">Workload.workload_eq_workload_joblist</a> [in <a href="workload.html">workload</a>]<br/>
-<br/><br/><a name="lemma_X"></a><h2>X </h2>
-<a href="Vbase.html#xorPif">xorPif</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#xorPifn">xorPifn</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="lemma_Z"></a><h2>Z </h2>
-<a href="util_lemmas.html#zipP">zipP</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><hr/>
-<h1>Constructor Index</h1>
-<a name="constructor_E"></a><h2>E </h2>
-<a href="Vbase.html#Equality.Mixin">Equality.Mixin</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Pack">Equality.Pack</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="constructor_I"></a><h2>I </h2>
-<a href="Vbase.html#IfSpecFalse">IfSpecFalse</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#IfSpecTrue">IfSpecTrue</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="constructor_P"></a><h2>P </h2>
-<a href="Vbase.html#Phantom">Phantom</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="constructor_R"></a><h2>R </h2>
-<a href="Vbase.html#ReflectF">ReflectF</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectT">ReflectT</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><hr/>
-<h1>Axiom Index</h1>
-<a name="axiom_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence.eqn_jobin">ArrivalSequence.eqn_jobin</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><hr/>
-<h1>Projection Index</h1>
-<a name="projection_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence._arrival_time">ArrivalSequence._arrival_time</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence._job_in">ArrivalSequence._job_in</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><a name="projection_E"></a><h2>E </h2>
-<a href="Vbase.html#Equality.op">Equality.op</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.sort">Equality.sort</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><hr/>
-<h1>Inductive Index</h1>
-<a name="inductive_I"></a><h2>I </h2>
-<a href="Vbase.html#if_spec">if_spec</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="inductive_P"></a><h2>P </h2>
-<a href="Vbase.html#phantom">phantom</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="inductive_R"></a><h2>R </h2>
-<a href="Vbase.html#reflect">reflect</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><hr/>
-<h1>Section Index</h1>
-<a name="section_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceDef">ArrivalSequence.ArrivalSequenceDef</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivalSequenceProperties">ArrivalSequence.ArrivalSequenceProperties</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.ArrivingJobs">ArrivalSequence.ArrivingJobs</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.JobInArrivalSequence">ArrivalSequence.JobInArrivalSequence</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><a name="section_B"></a><h2>B </h2>
-<a href="Vbase.html#BoolIf">BoolIf</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="section_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef">EDFSpecificBound.EDFBoundDef</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound">EDFSpecificBound.ProofInterferenceBound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof">EDFSpecificBound.ProofInterferenceBound.MainProof</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF">EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob">EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence">EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#Equality.ClassDef">Equality.ClassDef</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="section_I"></a><h2>I </h2>
-<a href="interference.html#Interference.InterferenceDefs">Interference.InterferenceDefs</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.BasicLemmas">Interference.InterferenceDefs.BasicLemmas</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.BoundUsingPerJobInterference">Interference.InterferenceDefs.BoundUsingPerJobInterference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService">Interference.InterferenceDefs.CorrespondenceWithService</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.EquivalenceWithPerJobInterference">Interference.InterferenceDefs.EquivalenceWithPerJobInterference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.JobInterference">Interference.InterferenceDefs.JobInterference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterference">Interference.InterferenceDefs.TaskInterference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList">Interference.InterferenceDefs.TaskInterferenceJobList</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferenceDefs.TotalInterference">Interference.InterferenceDefs.TotalInterference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks">Interference.InterferingTasks</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.FP">Interference.InterferingTasks.FP</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.InterferingTasks.JLFP">Interference.InterferingTasks.JLFP</a> [in <a href="interference.html">interference</a>]<br/>
-<br/><br/><a name="section_J"></a><h2>J </h2>
-<a href="job.html#Job.ValidJob">Job.ValidJob</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidRealtimeJob">Job.ValidRealtimeJob</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJob">Job.ValidSporadicTaskJob</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.ValidSporadicTaskJobWithJitter">Job.ValidSporadicTaskJobWithJitter</a> [in <a href="job.html">job</a>]<br/>
-<br/><br/><a name="section_N"></a><h2>N </h2>
-<a href="Vbase.html#NegationLemmas">NegationLemmas</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="section_O"></a><h2>O </h2>
-<a href="ExtraRelations.html#one_extension">one_extension</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="section_P"></a><h2>P </h2>
-<a href="util_lemmas.html#Pair">Pair</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants">Platform.SchedulingInvariants</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.FP">Platform.SchedulingInvariants.FP</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP">Platform.SchedulingInvariants.JLDP</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas">Platform.SchedulingInvariants.JLDP.BasicLemmas</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="priority.html#Priority.EDFDefs">Priority.EDFDefs</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.GeneralizeFP">Priority.GeneralizeFP</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.JLFPDefs">Priority.JLFPDefs</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs">Priority.PriorityDefs</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidFPPolicy">Priority.PriorityDefs.ValidFPPolicy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy">Priority.PriorityDefs.ValidJLFPPolicy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RateDeadlineMonotonic">Priority.RateDeadlineMonotonic</a> [in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="section_R"></a><h2>R </h2>
-<a href="Vbase.html#Reflect">Reflect</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectConnectives">ReflectConnectives</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectCore">ReflectCore</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#ReflectNegCore">ReflectNegCore</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound">ResponseTimeAnalysisEDF.ResponseTimeBound</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.DerivingContradiction</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks">ResponseTimeAnalysisEDF.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof">ResponseTimeAnalysisEDF.ResponseTimeBound.MainProof</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.AllTasks</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask">ResponseTimeAnalysisEDF.TotalInterferenceBoundEDF.PerTask</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP">ResponseTimeAnalysisFP.InterferenceBoundFP</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks">ResponseTimeAnalysisFP.InterferenceBoundFP.AllTasks</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask">ResponseTimeAnalysisFP.InterferenceBoundFP.PerTask</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound">ResponseTimeAnalysisFP.ResponseTimeBound</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.DerivingContradiction</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks">ResponseTimeAnalysisFP.ResponseTimeBound.Lemmas.LemmasAboutInterferingTasks</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan">ResponseTimeAnalysisGuan.InterferenceBoundGuan</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry">ResponseTimeAnalysisGuan.InterferenceBoundGuan.InterferenceBoundCarry</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition">ResponseTimeAnalysisGuan.InterferenceBoundGuan.TasksetPartition</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.ResponseTimeBoundGuan">ResponseTimeAnalysisGuan.ResponseTimeBoundGuan</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter">ResponseTimeAnalysisJitter.InterferenceBoundJitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP">ResponseTimeAnalysisJitter.InterferenceBoundJitter.FP</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP">ResponseTimeAnalysisJitter.InterferenceBoundJitter.JLFP</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask">ResponseTimeAnalysisJitter.InterferenceBoundJitter.PerTask</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.ResponseTimeBound">ResponseTimeAnalysisJitter.ResponseTimeBound</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis">ResponseTimeIterationEDF.Analysis</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence">ResponseTimeIterationEDF.Analysis.Convergence</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction">ResponseTimeIterationEDF.Analysis.Convergence.DerivingContradiction</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties">ResponseTimeIterationEDF.Analysis.Convergence.RelationProperties</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MainProof">ResponseTimeIterationEDF.Analysis.MainProof</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound">ResponseTimeIterationEDF.Analysis.MonotonicityOfInterferenceBound</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.Analysis.SimpleLemmas">ResponseTimeIterationEDF.Analysis.SimpleLemmas</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis">ResponseTimeIterationFPGuan.Analysis</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.AuxiliaryLemmas">ResponseTimeIterationFPGuan.Analysis.AuxiliaryLemmas</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof">ResponseTimeIterationFPGuan.Analysis.Proof</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.Analysis.Proof.HelperLemma">ResponseTimeIterationFPGuan.Analysis.Proof.HelperLemma</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis">ResponseTimeIterationFPWithJitter.Analysis</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.AuxiliaryLemmas">ResponseTimeIterationFPWithJitter.Analysis.AuxiliaryLemmas</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof">ResponseTimeIterationFPWithJitter.Analysis.Proof</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.Analysis.Proof.HelperLemma">ResponseTimeIterationFPWithJitter.Analysis.Proof.HelperLemma</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis">ResponseTimeIterationFP.Analysis</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence">ResponseTimeIterationFP.Analysis.Convergence</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction">ResponseTimeIterationFP.Analysis.Convergence.DerivingContradiction</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.HighPriorityTasks">ResponseTimeIterationFP.Analysis.HighPriorityTasks</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.MainProof">ResponseTimeIterationFP.Analysis.MainProof</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.Analysis.SimpleLemmas">ResponseTimeIterationFP.Analysis.SimpleLemmas</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas">ResponseTime.BasicLemmas</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.AllJobs">ResponseTime.BasicLemmas.AllJobs</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.BasicLemmas.SpecificJob">ResponseTime.BasicLemmas.SpecificJob</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="response_time.html#ResponseTime.ResponseTimeBound">ResponseTime.ResponseTimeBound</a> [in <a href="response_time.html">response_time</a>]<br/>
-<br/><br/><a name="section_S"></a><h2>S </h2>
-<a href="schedulability.html#Schedulability.BasicLemmas">Schedulability.BasicLemmas</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.AllJobs">Schedulability.BasicLemmas.AllJobs</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.BasicLemmas.SpecificJob">Schedulability.BasicLemmas.SpecificJob</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs">Schedulability.SchedulableDefs</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs">Schedulability.SchedulableDefs.ScheduleOfJobs</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks">Schedulability.SchedulableDefs.ScheduleOfTasks</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.BasicLemmas">ScheduleOfSporadicTask.BasicLemmas</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.ValidSchedule">ScheduleOfSporadicTask.ValidSchedule</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter">ScheduleOfTaskWithJitter.ArrivalAfterJitter</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas">ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduleDef">Schedule.ScheduleDef</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ScheduledJobs">Schedule.ScheduledJobs</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas">Schedule.ServiceLemmas</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Arrival">Schedule.ServiceLemmas.Arrival</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Basic">Schedule.ServiceLemmas.Basic</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.Completion">Schedule.ServiceLemmas.Completion</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ServiceLemmas.NoParallelism">Schedule.ServiceLemmas.NoParallelism</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.ValidSchedules">Schedule.ValidSchedules</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.ArrivalModels">SporadicTaskArrival.ArrivalModels</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs">SporadicTaskset.TasksetDefs</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties">SporadicTaskset.TasksetDefs.TasksetProperties</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask">SporadicTask.BasicTask</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.BasicTask.ValidParameters">SporadicTask.BasicTask.ValidParameters</a> [in <a href="task.html">task</a>]<br/>
-<br/><br/><a name="section_T"></a><h2>T </h2>
-<a href="util_lemmas.html#Triple">Triple</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="section_W"></a><h2>W </h2>
-<a href="workload_guan.html#WorkloadBoundGuan.BasicLemmasCarry">WorkloadBoundGuan.BasicLemmasCarry</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.ProofWorkloadBound">WorkloadBoundGuan.ProofWorkloadBound</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.WorkloadBoundCarry">WorkloadBoundGuan.WorkloadBoundCarry</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.BasicLemmas">WorkloadBound.BasicLemmas</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound">WorkloadBound.ProofWorkloadBound</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof">WorkloadBound.ProofWorkloadBound.MainProof</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence">WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs">WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.WorkloadBoundDef">WorkloadBound.WorkloadBoundDef</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.BasicLemmas">WorkloadWithJitter.BasicLemmas</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter">WorkloadWithJitter.ProofWorkloadBoundJitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions">WorkloadWithJitter.ProofWorkloadBoundJitter.CleanerDefinitions</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.WorkloadBoundWithJitter">WorkloadWithJitter.WorkloadBoundWithJitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload.html#Workload.WorkloadDef">Workload.WorkloadDef</a> [in <a href="workload.html">workload</a>]<br/>
-<br/><br/><hr/>
-<h1>Abbreviation Index</h1>
-<a name="abbreviation_E"></a><h2>E </h2>
-<a href="Vbase.html#Equality.class_of">Equality.class_of</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.EqMixin">Equality.Exports.EqMixin</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.EqType">Equality.Exports.EqType</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.Exports.eqType">Equality.Exports.eqType</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eqxx">eqxx</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><hr/>
-<h1>Definition Index</h1>
-<a name="definition_A"></a><h2>A </h2>
-<a href="ExtraRelations.html#acyclic">acyclic</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#antisymmetric_over_seq">antisymmetric_over_seq</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="extralib.html#appA">appA</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrival_sequence_is_a_set">ArrivalSequence.arrival_sequence_is_a_set</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrival_sequence">ArrivalSequence.arrival_sequence</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrived_between">ArrivalSequence.arrived_between</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrived_before">ArrivalSequence.arrived_before</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.arrives_at">ArrivalSequence.arrives_at</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.has_arrived">ArrivalSequence.has_arrived</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqType">ArrivalSequence.jobin_eqType</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqMixin">ArrivalSequence.jobin_eqMixin</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.jobin_eqdef">ArrivalSequence.jobin_eqdef</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.JobIn_is_Job">ArrivalSequence.JobIn_is_Job</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.job_arrival">ArrivalSequence.job_arrival</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.no_multiple_arrivals">ArrivalSequence.no_multiple_arrivals</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="arrival_sequence.html#ArrivalSequence.time">ArrivalSequence.time</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<a href="ExtraRelations.html#asymmetric">asymmetric</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="definition_C"></a><h2>C </h2>
-<a href="util_lemmas.html#comp_relation">comp_relation</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="definition_D"></a><h2>D </h2>
-<a href="Vbase.html#decP">decP</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="extralib.html#disjoint">disjoint</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="util_divround.html#div_ceil">div_ceil</a> [in <a href="util_divround.html">util_divround</a>]<br/>
-<a href="util_divround.html#div_floor">div_floor</a> [in <a href="util_divround.html">util_divround</a>]<br/>
-<br/><br/><a name="definition_E"></a><h2>E </h2>
-<a href="interference_bound_edf.html#EDFSpecificBound.edf_specific_interference_bound">EDFSpecificBound.edf_specific_interference_bound</a> [in <a href="interference_bound_edf.html">interference_bound_edf</a>]<br/>
-<a href="Vbase.html#Equality.axiom">Equality.axiom</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.class">Equality.class</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.clone">Equality.clone</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.pack">Equality.pack</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#eq_op">eq_op</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="util_lemmas.html#extend_ord">extend_ord</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#ext_tuple_to_fun_index">ext_tuple_to_fun_index</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="definition_F"></a><h2>F </h2>
-<a href="extralib.html#flatten">flatten</a> [in <a href="extralib.html">extralib</a>]<br/>
-<a href="util_lemmas.html#fun_ord_to_nat">fun_ord_to_nat</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="definition_I"></a><h2>I </h2>
-<a href="Vbase.html#idfun">idfun</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="ExtraRelations.html#immediate">immediate</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="interference.html#Interference.is_interfering_task_jlfp">Interference.is_interfering_task_jlfp</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.is_interfering_task_fp">Interference.is_interfering_task_fp</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.job_interference">Interference.job_interference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.schedules_job_of_tsk">Interference.schedules_job_of_tsk</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference_joblist">Interference.task_interference_joblist</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_interference">Interference.task_interference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.task_is_scheduled">Interference.task_is_scheduled</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="interference.html#Interference.total_interference">Interference.total_interference</a> [in <a href="interference.html">interference</a>]<br/>
-<a href="ExtraRelations.html#irreflexive">irreflexive</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#is_total">is_total</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="Vbase.html#is_true">is_true</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="definition_J"></a><h2>J </h2>
-<a href="job.html#Job.job_jitter_leq_task_jitter">Job.job_jitter_leq_task_jitter</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_deadline_eq_task_deadline">Job.job_deadline_eq_task_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_le_task_cost">Job.job_cost_le_task_cost</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_le_deadline">Job.job_cost_le_deadline</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_deadline_positive">Job.job_deadline_positive</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.job_cost_positive">Job.job_cost_positive</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_sporadic_job_with_jitter">Job.valid_sporadic_job_with_jitter</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_sporadic_job">Job.valid_sporadic_job</a> [in <a href="job.html">job</a>]<br/>
-<a href="job.html#Job.valid_realtime_job">Job.valid_realtime_job</a> [in <a href="job.html">job</a>]<br/>
-<br/><br/><a name="definition_M"></a><h2>M </h2>
-<a href="util_lemmas.html#make_sequence">make_sequence</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#max_elt">max_elt</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="definition_N"></a><h2>N </h2>
-<a href="util_lemmas.html#no_intersection">no_intersection</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#NW">NW</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><a name="definition_O"></a><h2>O </h2>
-<a href="ExtraRelations.html#one_ext">one_ext</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="definition_P"></a><h2>P </h2>
-<a href="util_lemmas.html#pair_2nd">pair_2nd</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#pair_1st">pair_1st</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="Vbase.html#phant_id">phant_id</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="platform.html#Platform.FP_scheduling_invariant_holds">Platform.FP_scheduling_invariant_holds</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds">Platform.JLFP_JLDP_scheduling_invariant_holds</a> [in <a href="platform.html">platform</a>]<br/>
-<a href="util_lemmas.html#powerset">powerset</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="priority.html#Priority.DM">Priority.DM</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.EDF">Priority.EDF</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_to_jldp">Priority.fp_to_jldp</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_total">Priority.fp_is_total</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_transitive">Priority.fp_is_transitive</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_is_reflexive">Priority.fp_is_reflexive</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.fp_policy">Priority.fp_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.is_jlfp_policy">Priority.is_jlfp_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jldp_policy">Priority.jldp_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_total">Priority.jlfp_is_total</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_transitive">Priority.jlfp_is_transitive</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.jlfp_is_reflexive">Priority.jlfp_is_reflexive</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.RM">Priority.RM</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_fp_policy">Priority.valid_fp_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<a href="priority.html#Priority.valid_jldp_policy">Priority.valid_jldp_policy</a> [in <a href="priority.html">priority</a>]<br/>
-<br/><br/><a name="definition_R"></a><h2>R </h2>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.interference_bound_edf">ResponseTimeAnalysisEDF.interference_bound_edf</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_edf_theory.html#ResponseTimeAnalysisEDF.total_interference_bound_edf">ResponseTimeAnalysisEDF.total_interference_bound_edf</a> [in <a href="bertogna_edf_theory.html">bertogna_edf_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.interference_bound_fp">ResponseTimeAnalysisFP.interference_bound_fp</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="bertogna_fp_theory.html#ResponseTimeAnalysisFP.total_interference_bound_fp">ResponseTimeAnalysisFP.total_interference_bound_fp</a> [in <a href="bertogna_fp_theory.html">bertogna_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.guan_interference_bound">ResponseTimeAnalysisGuan.guan_interference_bound</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.interference_bound_CI">ResponseTimeAnalysisGuan.interference_bound_CI</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.interference_bound_NC">ResponseTimeAnalysisGuan.interference_bound_NC</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="guan_fp_theory.html#ResponseTimeAnalysisGuan.valid_NC_CI_partitions">ResponseTimeAnalysisGuan.valid_NC_CI_partitions</a> [in <a href="guan_fp_theory.html">guan_fp_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.interference_bound_jitter">ResponseTimeAnalysisJitter.interference_bound_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.is_interfering_task_fp">ResponseTimeAnalysisJitter.is_interfering_task_fp</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.total_interference_bound_jlfp_jitter">ResponseTimeAnalysisJitter.total_interference_bound_jlfp_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_fp_jitter_theory.html#ResponseTimeAnalysisJitter.total_interference_bound_fp_jitter">ResponseTimeAnalysisJitter.total_interference_bound_fp_jitter</a> [in <a href="bertogna_fp_jitter_theory.html">bertogna_fp_jitter_theory</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_schedulable">ResponseTimeIterationEDF.edf_schedulable</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_claimed_bounds">ResponseTimeIterationEDF.edf_claimed_bounds</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_rta_iteration">ResponseTimeIterationEDF.edf_rta_iteration</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.edf_response_time_bound">ResponseTimeIterationEDF.edf_response_time_bound</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_job">ResponseTimeIterationEDF.no_deadline_missed_by_job</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.no_deadline_missed_by_task">ResponseTimeIterationEDF.no_deadline_missed_by_task</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.R_le_deadline">ResponseTimeIterationEDF.R_le_deadline</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="bertogna_edf_comp.html#ResponseTimeIterationEDF.update_bound">ResponseTimeIterationEDF.update_bound</a> [in <a href="bertogna_edf_comp.html">bertogna_edf_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.guan_fp_schedulable">ResponseTimeIterationFPGuan.guan_fp_schedulable</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.no_deadline_missed_by_job">ResponseTimeIterationFPGuan.no_deadline_missed_by_job</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.no_deadline_missed_by_task">ResponseTimeIterationFPGuan.no_deadline_missed_by_task</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.per_task_rta">ResponseTimeIterationFPGuan.per_task_rta</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list">ResponseTimeIterationFPGuan.R_list</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="guan_fp_comp.html#ResponseTimeIterationFPGuan.R_list_helper">ResponseTimeIterationFPGuan.R_list_helper</a> [in <a href="guan_fp_comp.html">guan_fp_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.fp_schedulable">ResponseTimeIterationFPWithJitter.fp_schedulable</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.no_deadline_missed_by_job">ResponseTimeIterationFPWithJitter.no_deadline_missed_by_job</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.no_deadline_missed_by_task">ResponseTimeIterationFPWithJitter.no_deadline_missed_by_task</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.per_task_rta">ResponseTimeIterationFPWithJitter.per_task_rta</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list">ResponseTimeIterationFPWithJitter.R_list</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_jitter_comp.html#ResponseTimeIterationFPWithJitter.R_list_helper">ResponseTimeIterationFPWithJitter.R_list_helper</a> [in <a href="bertogna_fp_jitter_comp.html">bertogna_fp_jitter_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_schedulable">ResponseTimeIterationFP.fp_schedulable</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_claimed_bounds">ResponseTimeIterationFP.fp_claimed_bounds</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.fp_bound_of_task">ResponseTimeIterationFP.fp_bound_of_task</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.max_steps">ResponseTimeIterationFP.max_steps</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="bertogna_fp_comp.html#ResponseTimeIterationFP.per_task_rta">ResponseTimeIterationFP.per_task_rta</a> [in <a href="bertogna_fp_comp.html">bertogna_fp_comp</a>]<br/>
-<a href="response_time.html#ResponseTime.is_response_time_bound_of_task">ResponseTime.is_response_time_bound_of_task</a> [in <a href="response_time.html">response_time</a>]<br/>
-<a href="ExtraRelations.html#restr_eq_rel">restr_eq_rel</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_rel">restr_rel</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#restr_subset">restr_subset</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#reverse_sorted">reverse_sorted</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="definition_S"></a><h2>S </h2>
-<a href="schedulability.html#Schedulability.job_misses_no_deadline">Schedulability.job_misses_no_deadline</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.task_misses_no_deadline_before">Schedulability.task_misses_no_deadline_before</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedulability.html#Schedulability.task_misses_no_deadline">Schedulability.task_misses_no_deadline</a> [in <a href="schedulability.html">schedulability</a>]<br/>
-<a href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel">ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#ScheduleOfTaskWithJitter.jobs_execute_after_jitter">ScheduleOfTaskWithJitter.jobs_execute_after_jitter</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.backlogged">Schedule.backlogged</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.carried_out">Schedule.carried_out</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.carried_in">Schedule.carried_in</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completed">Schedule.completed</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.completed_jobs_dont_execute">Schedule.completed_jobs_dont_execute</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.is_idle">Schedule.is_idle</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_must_arrive_to_execute">Schedule.jobs_must_arrive_to_execute</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_dont_execute_in_parallel">Schedule.jobs_dont_execute_in_parallel</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_scheduled_between">Schedule.jobs_scheduled_between</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.jobs_scheduled_at">Schedule.jobs_scheduled_at</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.pending">Schedule.pending</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.processor">Schedule.processor</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.schedule">Schedule.schedule</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.scheduled">Schedule.scheduled</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service">Schedule.service</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_during">Schedule.service_during</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="schedule.html#Schedule.service_at">Schedule.service_at</a> [in <a href="schedule.html">schedule</a>]<br/>
-<a href="task_arrival.html#SporadicTaskArrival.sporadic_task_model">SporadicTaskArrival.sporadic_task_model</a> [in <a href="task_arrival.html">task_arrival</a>]<br/>
-<a href="task.html#SporadicTaskset.arbitrary_deadline_model">SporadicTaskset.arbitrary_deadline_model</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.implicit_deadline_model">SporadicTaskset.implicit_deadline_model</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.restricted_deadline_model">SporadicTaskset.restricted_deadline_model</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.taskset_of">SporadicTaskset.taskset_of</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTaskset.valid_sporadic_taskset">SporadicTaskset.valid_sporadic_taskset</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.is_valid_sporadic_task">SporadicTask.is_valid_sporadic_task</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_le_period">SporadicTask.task_cost_le_period</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_le_deadline">SporadicTask.task_cost_le_deadline</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_deadline_positive">SporadicTask.task_deadline_positive</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_period_positive">SporadicTask.task_period_positive</a> [in <a href="task.html">task</a>]<br/>
-<a href="task.html#SporadicTask.task_cost_positive">SporadicTask.task_cost_positive</a> [in <a href="task.html">task</a>]<br/>
-<br/><br/><a name="definition_T"></a><h2>T </h2>
-<a href="util_lemmas.html#total_over_seq">total_over_seq</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="ExtraRelations.html#tot_ext">tot_ext</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="util_lemmas.html#triple_3rd">triple_3rd</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#triple_2nd">triple_2nd</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<a href="util_lemmas.html#triple_1st">triple_1st</a> [in <a href="util_lemmas.html">util_lemmas</a>]<br/>
-<br/><br/><a name="definition_U"></a><h2>U </h2>
-<a href="ExtraRelations.html#undup">undup</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<a href="ExtraRelations.html#upward_closed">upward_closed</a> [in <a href="ExtraRelations.html">ExtraRelations</a>]<br/>
-<br/><br/><a name="definition_W"></a><h2>W </h2>
-<a href="workload_guan.html#WorkloadBoundGuan.max_jobs_CI">WorkloadBoundGuan.max_jobs_CI</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.max_jobs_NC">WorkloadBoundGuan.max_jobs_NC</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_CI">WorkloadBoundGuan.W_CI</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_guan.html#WorkloadBoundGuan.W_NC">WorkloadBoundGuan.W_NC</a> [in <a href="workload_guan.html">workload_guan</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.max_jobs">WorkloadBound.max_jobs</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_bound.html#WorkloadBound.W">WorkloadBound.W</a> [in <a href="workload_bound.html">workload_bound</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.max_jobs_jitter">WorkloadWithJitter.max_jobs_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.no_deadline_misses_by">WorkloadWithJitter.no_deadline_misses_by</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.response_time_bound_of">WorkloadWithJitter.response_time_bound_of</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.workload_of">WorkloadWithJitter.workload_of</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload_jitter.html#WorkloadWithJitter.W_jitter">WorkloadWithJitter.W_jitter</a> [in <a href="workload_jitter.html">workload_jitter</a>]<br/>
-<a href="workload.html#Workload.service_of_task">Workload.service_of_task</a> [in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.workload">Workload.workload</a> [in <a href="workload.html">workload</a>]<br/>
-<a href="workload.html#Workload.workload_joblist">Workload.workload_joblist</a> [in <a href="workload.html">workload</a>]<br/>
-<br/><br/><hr/>
-<h1>Record Index</h1>
-<a name="record_A"></a><h2>A </h2>
-<a href="arrival_sequence.html#ArrivalSequence.JobIn">ArrivalSequence.JobIn</a> [in <a href="arrival_sequence.html">arrival_sequence</a>]<br/>
-<br/><br/><a name="record_E"></a><h2>E </h2>
-<a href="Vbase.html#Equality.mixin_of">Equality.mixin_of</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<a href="Vbase.html#Equality.type">Equality.type</a> [in <a href="Vbase.html">Vbase</a>]<br/>
-<br/><br/><hr/><table>
-<tr>
-<td>Global Index</td>
-<td><a href="index.html#global_A">A</a></td>
-<td><a href="index.html#global_B">B</a></td>
-<td><a href="index.html#global_C">C</a></td>
-<td><a href="index.html#global_D">D</a></td>
-<td><a href="index.html#global_E">E</a></td>
-<td><a href="index.html#global_F">F</a></td>
-<td><a href="index.html#global_G">G</a></td>
-<td>H</td>
-<td><a href="index.html#global_I">I</a></td>
-<td><a href="index.html#global_J">J</a></td>
-<td>K</td>
-<td><a href="index.html#global_L">L</a></td>
-<td><a href="index.html#global_M">M</a></td>
-<td><a href="index.html#global_N">N</a></td>
-<td><a href="index.html#global_O">O</a></td>
-<td><a href="index.html#global_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#global_R">R</a></td>
-<td><a href="index.html#global_S">S</a></td>
-<td><a href="index.html#global_T">T</a></td>
-<td><a href="index.html#global_U">U</a></td>
-<td><a href="index.html#global_V">V</a></td>
-<td><a href="index.html#global_W">W</a></td>
-<td><a href="index.html#global_X">X</a></td>
-<td>Y</td>
-<td><a href="index.html#global_Z">Z</a></td>
-<td>_</td>
-<td><a href="index.html#global_*">other</a></td>
-<td>(1571 entries)</td>
-</tr>
-<tr>
-<td>Notation Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#notation_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td><a href="index.html#notation_*">other</a></td>
-<td>(19 entries)</td>
-</tr>
-<tr>
-<td>Module Index</td>
-<td><a href="index.html#module_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#module_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#module_I">I</a></td>
-<td><a href="index.html#module_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#module_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#module_R">R</a></td>
-<td><a href="index.html#module_S">S</a></td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#module_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(28 entries)</td>
-</tr>
-<tr>
-<td>Variable Index</td>
-<td><a href="index.html#variable_A">A</a></td>
-<td><a href="index.html#variable_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#variable_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#variable_I">I</a></td>
-<td><a href="index.html#variable_J">J</a></td>
-<td>K</td>
-<td><a href="index.html#variable_L">L</a></td>
-<td>M</td>
-<td><a href="index.html#variable_N">N</a></td>
-<td><a href="index.html#variable_O">O</a></td>
-<td><a href="index.html#variable_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#variable_R">R</a></td>
-<td><a href="index.html#variable_S">S</a></td>
-<td><a href="index.html#variable_T">T</a></td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#variable_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(767 entries)</td>
-</tr>
-<tr>
-<td>Library Index</td>
-<td><a href="index.html#library_A">A</a></td>
-<td><a href="index.html#library_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#library_E">E</a></td>
-<td>F</td>
-<td><a href="index.html#library_G">G</a></td>
-<td>H</td>
-<td><a href="index.html#library_I">I</a></td>
-<td><a href="index.html#library_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#library_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#library_R">R</a></td>
-<td><a href="index.html#library_S">S</a></td>
-<td><a href="index.html#library_T">T</a></td>
-<td><a href="index.html#library_U">U</a></td>
-<td><a href="index.html#library_V">V</a></td>
-<td><a href="index.html#library_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(29 entries)</td>
-</tr>
-<tr>
-<td>Lemma Index</td>
-<td><a href="index.html#lemma_A">A</a></td>
-<td><a href="index.html#lemma_B">B</a></td>
-<td><a href="index.html#lemma_C">C</a></td>
-<td><a href="index.html#lemma_D">D</a></td>
-<td><a href="index.html#lemma_E">E</a></td>
-<td><a href="index.html#lemma_F">F</a></td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#lemma_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td><a href="index.html#lemma_L">L</a></td>
-<td><a href="index.html#lemma_M">M</a></td>
-<td><a href="index.html#lemma_N">N</a></td>
-<td><a href="index.html#lemma_O">O</a></td>
-<td><a href="index.html#lemma_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#lemma_R">R</a></td>
-<td><a href="index.html#lemma_S">S</a></td>
-<td><a href="index.html#lemma_T">T</a></td>
-<td><a href="index.html#lemma_U">U</a></td>
-<td><a href="index.html#lemma_V">V</a></td>
-<td><a href="index.html#lemma_W">W</a></td>
-<td><a href="index.html#lemma_X">X</a></td>
-<td>Y</td>
-<td><a href="index.html#lemma_Z">Z</a></td>
-<td>_</td>
-<td>other</td>
-<td>(385 entries)</td>
-</tr>
-<tr>
-<td>Constructor Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#constructor_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#constructor_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#constructor_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#constructor_R">R</a></td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(7 entries)</td>
-</tr>
-<tr>
-<td>Axiom Index</td>
-<td><a href="index.html#axiom_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td>E</td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(1 entry)</td>
-</tr>
-<tr>
-<td>Projection Index</td>
-<td><a href="index.html#projection_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#projection_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(4 entries)</td>
-</tr>
-<tr>
-<td>Inductive Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td>E</td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#inductive_I">I</a></td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td><a href="index.html#inductive_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#inductive_R">R</a></td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(3 entries)</td>
-</tr>
-<tr>
-<td>Section Index</td>
-<td><a href="index.html#section_A">A</a></td>
-<td><a href="index.html#section_B">B</a></td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#section_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#section_I">I</a></td>
-<td><a href="index.html#section_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td><a href="index.html#section_N">N</a></td>
-<td><a href="index.html#section_O">O</a></td>
-<td><a href="index.html#section_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#section_R">R</a></td>
-<td><a href="index.html#section_S">S</a></td>
-<td><a href="index.html#section_T">T</a></td>
-<td>U</td>
-<td>V</td>
-<td><a href="index.html#section_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(143 entries)</td>
-</tr>
-<tr>
-<td>Abbreviation Index</td>
-<td>A</td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#abbreviation_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(5 entries)</td>
-</tr>
-<tr>
-<td>Definition Index</td>
-<td><a href="index.html#definition_A">A</a></td>
-<td>B</td>
-<td><a href="index.html#definition_C">C</a></td>
-<td><a href="index.html#definition_D">D</a></td>
-<td><a href="index.html#definition_E">E</a></td>
-<td><a href="index.html#definition_F">F</a></td>
-<td>G</td>
-<td>H</td>
-<td><a href="index.html#definition_I">I</a></td>
-<td><a href="index.html#definition_J">J</a></td>
-<td>K</td>
-<td>L</td>
-<td><a href="index.html#definition_M">M</a></td>
-<td><a href="index.html#definition_N">N</a></td>
-<td><a href="index.html#definition_O">O</a></td>
-<td><a href="index.html#definition_P">P</a></td>
-<td>Q</td>
-<td><a href="index.html#definition_R">R</a></td>
-<td><a href="index.html#definition_S">S</a></td>
-<td><a href="index.html#definition_T">T</a></td>
-<td><a href="index.html#definition_U">U</a></td>
-<td>V</td>
-<td><a href="index.html#definition_W">W</a></td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(177 entries)</td>
-</tr>
-<tr>
-<td>Record Index</td>
-<td><a href="index.html#record_A">A</a></td>
-<td>B</td>
-<td>C</td>
-<td>D</td>
-<td><a href="index.html#record_E">E</a></td>
-<td>F</td>
-<td>G</td>
-<td>H</td>
-<td>I</td>
-<td>J</td>
-<td>K</td>
-<td>L</td>
-<td>M</td>
-<td>N</td>
-<td>O</td>
-<td>P</td>
-<td>Q</td>
-<td>R</td>
-<td>S</td>
-<td>T</td>
-<td>U</td>
-<td>V</td>
-<td>W</td>
-<td>X</td>
-<td>Y</td>
-<td>Z</td>
-<td>_</td>
-<td>other</td>
-<td>(3 entries)</td>
-</tr>
-</table>
-<hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/interference.html b/interference.html
deleted file mode 100644
index 8029e3692..000000000
--- a/interference.html
+++ /dev/null
@@ -1,276 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>interference</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library interference</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a> <span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="Interference"><span class="id" type="module">Interference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">Priority</span> <span class="id" type="var">Workload</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferingTasks"><span class="id" type="section">InterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferingTasks.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferingTasks.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferingTasks.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferingTasks.FP"><span class="id" type="section">FP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;an&nbsp;FP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferingTasks.FP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;tsk_other&nbsp;is&nbsp;said&nbsp;to&nbsp;interfere&nbsp;with&nbsp;tsk&nbsp;if&nbsp;it's&nbsp;a&nbsp;different<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;task&nbsp;with&nbsp;higher&nbsp;or&nbsp;equal&nbsp;priority.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.is_interfering_task_fp"><span class="id" type="definition">is_interfering_task_fp</span></a> (<span class="id" type="var">tsk</span> <span class="id" type="var">tsk_other</span>: <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.InterferingTasks.FP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="interference.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><a class="idref" href="interference.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferingTasks.FP"><span class="id" type="section">FP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferingTasks.JLFP"><span class="id" type="section">JLFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Under&nbsp;JLFP&nbsp;policies,&nbsp;any&nbsp;two&nbsp;different&nbsp;tasks&nbsp;can&nbsp;interfere&nbsp;with<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;each&nbsp;other.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.is_interfering_task_jlfp"><span class="id" type="definition">is_interfering_task_jlfp</span></a> (<span class="id" type="var">tsk</span> <span class="id" type="var">tsk_other</span>: <a class="idref" href="interference.html#Interference.InterferingTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferingTasks.JLFP"><span class="id" type="section">JLFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferingTasks"><span class="id" type="section">InterferingTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs"><span class="id" type="section">InterferenceDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="interference.html#Interference.InterferenceDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="interference.html#Interference.InterferenceDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="interference.html#Interference.InterferenceDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;any&nbsp;job&nbsp;arrival&nbsp;sequence...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;any&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;job&nbsp;j&nbsp;that&nbsp;incurs&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Recall&nbsp;the&nbsp;definition&nbsp;of&nbsp;backlogged&nbsp;(pending&nbsp;and&nbsp;not&nbsp;scheduled).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="Interference.InterferenceDefs.job_is_backlogged"><span class="id" type="variable">job_is_backlogged</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.TotalInterference"><span class="id" type="section">TotalInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;define&nbsp;the&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;during&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span>
-         <span class="inlinecode"><span class="id" type="keyword">as</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">cumulative</span></span> <span class="inlinecode"><span class="id" type="var">time</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">which</span></span> <span class="inlinecode"><span class="id" type="var">j</span></span> <span class="inlinecode"><span class="id" type="var">is</span></span> <span class="inlinecode"><span class="id" type="var">backlogged</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">this</span></span> <span class="inlinecode"><span class="id" type="var">interval</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.total_interference"><span class="id" type="definition">total_interference</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_is_backlogged"><span class="id" type="variable">job_is_backlogged</span></a> <span class="id" type="var">t</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.TotalInterference"><span class="id" type="section">TotalInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.JobInterference"><span class="id" type="section">JobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;job_other&nbsp;be&nbsp;a&nbsp;job&nbsp;that&nbsp;interferes&nbsp;with&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.JobInterference.job_other"><span class="id" type="variable">job_other</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;interference&nbsp;caused&nbsp;by&nbsp;job_other&nbsp;is&nbsp;defined&nbsp;as&nbsp;follows.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.job_interference"><span class="id" type="definition">job_interference</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><a class="idref" href="interference.html#Interference.InterferenceDefs.job_is_backlogged"><span class="id" type="variable">job_is_backlogged</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.JobInterference.job_other"><span class="id" type="variable">job_other</span></a> <span class="id" type="var">t</span><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.JobInterference"><span class="id" type="section">JobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.TaskInterference"><span class="id" type="section">TaskInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;order&nbsp;to&nbsp;define&nbsp;task&nbsp;interference,&nbsp;consider&nbsp;any&nbsp;interfering&nbsp;task&nbsp;tsk_other.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.TaskInterference.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="interference.html#Interference.InterferenceDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.schedules_job_of_tsk"><span class="id" type="definition">schedules_job_of_tsk</span></a> (<span class="id" type="var">cpu</span>: <a class="idref" href="schedule.html#Schedule.processor"><span class="id" type="definition">processor</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.num_cpus"><span class="id" type="variable">num_cpus</span></a>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> (<a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#cpu"><span class="id" type="variable">cpu</span></a> <a class="idref" href="interference.html#t"><span class="id" type="variable">t</span></a>) <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">j'</span> =&gt; <a class="idref" href="interference.html#Interference.InterferenceDefs.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j'</span> <span class="id" type="notation">==</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.TaskInterference.tsk_other"><span class="id" type="variable">tsk_other</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a> =&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;know&nbsp;that&nbsp;tsk&nbsp;is&nbsp;scheduled&nbsp;at&nbsp;time&nbsp;t&nbsp;if&nbsp;there&nbsp;exists&nbsp;a&nbsp;processor<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scheduling&nbsp;a&nbsp;job&nbsp;of&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.task_is_scheduled"><span class="id" type="definition">task_is_scheduled</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">[</span><span class="id" type="notation">exists</span> <span class="id" type="var">cpu</span> <span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.processor"><span class="id" type="definition">processor</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.num_cpus"><span class="id" type="variable">num_cpus</span></a><span class="id" type="notation">,</span> <a class="idref" href="interference.html#Interference.schedules_job_of_tsk"><span class="id" type="definition">schedules_job_of_tsk</span></a> <span class="id" type="var">cpu</span> <a class="idref" href="interference.html#t"><span class="id" type="variable">t</span></a><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;define&nbsp;the&nbsp;total&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;tsk&nbsp;during&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span>
-         <span class="inlinecode"><span class="id" type="keyword">as</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">cumulative</span></span> <span class="inlinecode"><span class="id" type="var">time</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">which</span></span> <span class="inlinecode"><span class="id" type="var">tsk</span></span> <span class="inlinecode"><span class="id" type="var">is</span></span> <span class="inlinecode"><span class="id" type="var">scheduled</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.task_interference"><span class="id" type="definition">task_interference</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><a class="idref" href="interference.html#Interference.InterferenceDefs.job_is_backlogged"><span class="id" type="variable">job_is_backlogged</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="interference.html#Interference.task_is_scheduled"><span class="id" type="definition">task_is_scheduled</span></a> <span class="id" type="var">t</span><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.TaskInterference"><span class="id" type="section">TaskInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.TaskInterferenceJobList"><span class="id" type="section">TaskInterferenceJobList</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="interference.html#Interference.InterferenceDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Interference.task_interference_joblist"><span class="id" type="definition">task_interference_joblist</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">|</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j</span> <span class="id" type="notation">==</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList.tsk_other"><span class="id" type="variable">tsk_other</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.TaskInterferenceJobList"><span class="id" type="section">TaskInterferenceJobList</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Interference&nbsp;cannot&nbsp;be&nbsp;larger&nbsp;than&nbsp;the&nbsp;considered&nbsp;time&nbsp;window.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.total_interference_le_delta"><span class="id" type="lemma">total_interference_le_delta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.total_interference"><span class="id" type="definition">total_interference</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.job_interference_le_delta"><span class="id" type="lemma">job_interference_le_delta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j_other</span> <span class="id" type="var">t1</span> <span class="id" type="keyword">delta</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> (<a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>) <span class="id" type="notation">&lt;=</span> <span class="id" type="keyword">delta</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.job_interference_le_service"><span class="id" type="lemma">job_interference_le_service</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j_other</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.task_interference_le_workload"><span class="id" type="lemma">task_interference_le_workload</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload.html#Workload.workload"><span class="id" type="definition">workload</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;we&nbsp;assume&nbsp;no&nbsp;intra-task&nbsp;parallelism,&nbsp;the&nbsp;two&nbsp;definitions<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;interference&nbsp;are&nbsp;the&nbsp;same.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.EquivalenceWithPerJobInterference"><span class="id" type="section">EquivalenceWithPerJobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.EquivalenceWithPerJobInterference.H_no_intratask_parallelism"><span class="id" type="variable">H_no_intratask_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel"><span class="id" type="definition">jobs_of_same_task_dont_execute_in_parallel</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.interference_eq_interference_joblist"><span class="id" type="lemma">interference_eq_interference_joblist</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference.html#Interference.task_interference_joblist"><span class="id" type="definition">task_interference_joblist</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.EquivalenceWithPerJobInterference"><span class="id" type="section">EquivalenceWithPerJobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;we&nbsp;don't&nbsp;assume&nbsp;intra-task&nbsp;parallelism,&nbsp;the&nbsp;per-job&nbsp;interference<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bounds&nbsp;the&nbsp;actual&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.BoundUsingPerJobInterference"><span class="id" type="section">BoundUsingPerJobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.interference_le_interference_joblist"><span class="id" type="lemma">interference_le_interference_joblist</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference.html#Interference.task_interference_joblist"><span class="id" type="definition">task_interference_joblist</span></a> <a class="idref" href="interference.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.BoundUsingPerJobInterference"><span class="id" type="section">BoundUsingPerJobInterference</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService"><span class="id" type="section">CorrespondenceWithService</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.t1"><span class="id" type="variable">t1</span></a> <a name="Interference.InterferenceDefs.CorrespondenceWithService.t2"><span class="id" type="variable">t2</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.no_parallelism"><span class="id" type="variable">no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;and&nbsp;that&nbsp;jobs&nbsp;only&nbsp;execute&nbsp;after&nbsp;they&nbsp;arrived<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;no&nbsp;longer&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.jobs_must_arrive_to_execute"><span class="id" type="variable">jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.completed_jobs_dont_execute"><span class="id" type="variable">completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;job&nbsp;j&nbsp;had&nbsp;already&nbsp;arrived&nbsp;at&nbsp;time&nbsp;t1&nbsp;and&nbsp;did&nbsp;not&nbsp;yet<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;complete&nbsp;by&nbsp;time&nbsp;t2,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.job_has_arrived"><span class="id" type="variable">job_has_arrived</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.has_arrived"><span class="id" type="definition">has_arrived</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1"><span class="id" type="variable">t1</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Interference.InterferenceDefs.CorrespondenceWithService.job_is_not_complete"><span class="id" type="variable">job_is_not_complete</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;then&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;j&nbsp;during&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span> <span class="inlinecode"><span class="id" type="var">equals</span></span>
-         <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">cumulative</span></span> <span class="inlinecode"><span class="id" type="var">time</span></span> <span class="inlinecode"><span class="id" type="keyword">in</span></span> <span class="inlinecode"><span class="id" type="var">which</span></span> <span class="inlinecode"><span class="id" type="var">it</span></span> <span class="inlinecode"><span class="id" type="var">did</span></span> <span class="inlinecode"><span class="id" type="var">not</span></span> <span class="inlinecode"><span class="id" type="var">incur</span></span> <span class="inlinecode"><span class="id" type="var">interference</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Interference.complement_of_interf_equals_service"><span class="id" type="lemma">complement_of_interf_equals_service</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference.html#Interference.total_interference"><span class="id" type="definition">total_interference</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService.t2"><span class="id" type="variable">t2</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Reorder&nbsp;terms...&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs.CorrespondenceWithService"><span class="id" type="section">CorrespondenceWithService</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#Interference.InterferenceDefs"><span class="id" type="section">InterferenceDefs</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="interference.html#"><span class="id" type="module">Interference</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/interference_bound_edf.html b/interference_bound_edf.html
deleted file mode 100644
index e35fdcb61..000000000
--- a/interference_bound_edf.html
+++ /dev/null
@@ -1,608 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>interference_bound_edf</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library interference_bound_edf</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="platform.html#"><span class="id" type="library">platform</span></a> <a class="idref" href="interference.html#"><span class="id" type="library">interference</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="workload_bound.html#"><span class="id" type="library">workload_bound</span></a> <a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="bertogna_fp_theory.html#"><span class="id" type="library">bertogna_fp_theory</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">div</span> <span class="id" type="library">path</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following&nbsp;section,&nbsp;we&nbsp;define&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDF-specific&nbsp;per-task&nbsp;interference&nbsp;bound.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="EDFSpecificBound"><span class="id" type="module">EDFSpecificBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">Schedulability</span> <span class="id" type="var">ResponseTime</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">Priority</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">Interference</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.EDFBoundDef"><span class="id" type="section">EDFBoundDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk&nbsp;be&nbsp;the&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;the&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;tsk&nbsp;in&nbsp;a&nbsp;window&nbsp;of&nbsp;length&nbsp;delta...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;due&nbsp;to&nbsp;a&nbsp;different&nbsp;task&nbsp;tsk_other,&nbsp;with&nbsp;response-time&nbsp;bound&nbsp;R_other.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.tsk_other"><span class="id" type="variable">tsk_other</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.EDFBoundDef.R_other"><span class="id" type="variable">R_other</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Bertogna&nbsp;and&nbsp;Cirinei&nbsp;define&nbsp;the&nbsp;following&nbsp;bound&nbsp;for&nbsp;task&nbsp;interference<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;under&nbsp;EDF&nbsp;scheduling.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="EDFSpecificBound.edf_specific_interference_bound"><span class="id" type="definition">edf_specific_interference_bound</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">d_tsk</span> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">e_other</span> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">p_other</span> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">d_other</span> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.tsk_other"><span class="id" type="variable">tsk_other</span></a> <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> <a class="idref" href="interference_bound_edf.html#d_tsk"><span class="id" type="variable">d_tsk</span></a> <a class="idref" href="interference_bound_edf.html#p_other"><span class="id" type="variable">p_other</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">*</span> <a class="idref" href="interference_bound_edf.html#e_other"><span class="id" type="variable">e_other</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> <a class="idref" href="interference_bound_edf.html#e_other"><span class="id" type="variable">e_other</span></a> (<span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#d_tsk"><span class="id" type="variable">d_tsk</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="interference_bound_edf.html#p_other"><span class="id" type="variable">p_other</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#d_other"><span class="id" type="variable">d_other</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef.R_other"><span class="id" type="variable">R_other</span></a><span class="id" type="notation">)</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.EDFBoundDef"><span class="id" type="section">EDFBoundDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound"><span class="id" type="section">ProofInterferenceBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">Interference</span> <span class="id" type="var">Platform</span> <span class="id" type="var">SporadicTaskset</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;any&nbsp;job&nbsp;arrival&nbsp;sequence...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;in&nbsp;which&nbsp;jobs&nbsp;arrive&nbsp;sporadically&nbsp;and&nbsp;have&nbsp;valid&nbsp;parameters.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_valid_job_parameters"><span class="id" type="variable">H_valid_job_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;schedule&nbsp;such&nbsp;that...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;before&nbsp;their&nbsp;arrival&nbsp;times&nbsp;nor&nbsp;longer<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;their&nbsp;execution&nbsp;costs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also&nbsp;assume&nbsp;that&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel&nbsp;and&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there&nbsp;exists&nbsp;at&nbsp;least&nbsp;one&nbsp;processor.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_at_least_one_cpu"><span class="id" type="variable">H_at_least_one_cpu</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;task&nbsp;set&nbsp;where&nbsp;all&nbsp;tasks&nbsp;have&nbsp;valid<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;and&nbsp;restricted&nbsp;deadlines.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.all_jobs_from_taskset"><span class="id" type="variable">all_jobs_from_taskset</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_restricted_deadlines"><span class="id" type="variable">H_restricted_deadlines</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>, <a class="idref" href="interference_bound_edf.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.no_deadline_is_missed_by_tsk"><span class="id" type="variable">no_deadline_is_missed_by_tsk</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.response_time_bounded_by"><span class="id" type="variable">response_time_bounded_by</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;schedule&nbsp;satisfies&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;EDF,&nbsp;i.e.,&nbsp;if&nbsp;any&nbsp;job&nbsp;of&nbsp;tsk&nbsp;is&nbsp;backlogged,&nbsp;every&nbsp;processor<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;must&nbsp;be&nbsp;busy&nbsp;with&nbsp;jobs&nbsp;with&nbsp;no&nbsp;larger&nbsp;absolute&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> := @<a class="idref" href="priority.html#Priority.EDF"><span class="id" type="definition">EDF</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.Job"><span class="id" type="variable">Job</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>. <span class="comment">(*&nbsp;TODO:&nbsp;implicit&nbsp;params&nbsp;broken&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_global_scheduling_invariant"><span class="id" type="variable">H_global_scheduling_invariant</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds"><span class="id" type="definition">JLFP_JLDP_scheduling_invariant_holds</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk_i&nbsp;be&nbsp;the&nbsp;task&nbsp;to&nbsp;be&nbsp;analyzed,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_tsk_i_in_task_set"><span class="id" type="variable">H_tsk_i_in_task_set</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;and&nbsp;j_i&nbsp;one&nbsp;of&nbsp;its&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_job_of_tsk_i"><span class="id" type="variable">H_job_of_tsk_i</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk_k&nbsp;denote&nbsp;any&nbsp;interfering&nbsp;task,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_tsk_k_in_task_set"><span class="id" type="variable">H_tsk_k_in_task_set</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;R_k&nbsp;its&nbsp;response-time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_R_k_le_deadline"><span class="id" type="variable">H_R_k_le_deadline</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;a&nbsp;time&nbsp;window&nbsp;of&nbsp;length&nbsp;delta&nbsp;&lt;=&nbsp;D_i,&nbsp;starting&nbsp;with&nbsp;j_i's&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_delta_le_deadline"><span class="id" type="variable">H_delta_le_deadline</span></a>: <span class="id" type="keyword">delta</span> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;jobs&nbsp;of&nbsp;tsk_k&nbsp;satisfy&nbsp;the&nbsp;response-time&nbsp;bound&nbsp;before&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;interval&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.H_all_previous_jobs_completed_on_time"><span class="id" type="variable">H_all_previous_jobs_completed_on_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j_k</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#j_k"><span class="id" type="variable">j_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#j_k"><span class="id" type="variable">j_k</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#j_k"><span class="id" type="variable">j_k</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#j_k"><span class="id" type="variable">j_k</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;that&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;EDF&nbsp;interference&nbsp;bound<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indeed&nbsp;bounds&nbsp;the&nbsp;interference&nbsp;caused&nbsp;by&nbsp;task&nbsp;tsk_k&nbsp;in&nbsp;the&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode">+</span> <span class="inlinecode"><span class="id" type="keyword">delta</span>).</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;call&nbsp;x&nbsp;the&nbsp;task&nbsp;interference&nbsp;incurred&nbsp;by&nbsp;job&nbsp;j&nbsp;due&nbsp;to&nbsp;tsk_k.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.x"><span class="id" type="variable">x</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_interference"><span class="id" type="definition">task_interference</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a>) (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;recall&nbsp;the&nbsp;EDF-specific&nbsp;interference&nbsp;bound&nbsp;for&nbsp;EDF.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound"><span class="id" type="variable">interference_bound</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.edf_specific_interference_bound"><span class="id" type="definition">edf_specific_interference_bound</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;simplify&nbsp;the&nbsp;names&nbsp;a&nbsp;bit.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> := <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> := <a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Identify&nbsp;the&nbsp;subset&nbsp;of&nbsp;jobs&nbsp;that&nbsp;actually&nbsp;cause&nbsp;interference&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">filter</span> (<span class="id" type="keyword">fun</span> (<span class="id" type="var">x</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">==</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="interference_bound_edf.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;give&nbsp;a&nbsp;simpler&nbsp;name&nbsp;to&nbsp;job&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> := <a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;consider&nbsp;the&nbsp;list&nbsp;of&nbsp;interfering&nbsp;jobs&nbsp;sorted&nbsp;by&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.order"><span class="id" type="variable">order</span></a> := <span class="id" type="keyword">fun</span> (<span class="id" type="var">x</span> <span class="id" type="var">y</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) =&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#y"><span class="id" type="variable">y</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> := (<span class="id" type="definition">sort</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.order"><span class="id" type="variable">order</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;proceed&nbsp;with&nbsp;the&nbsp;proof.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;first&nbsp;step&nbsp;consists&nbsp;in&nbsp;simplifying&nbsp;the&nbsp;sum&nbsp;corresponding&nbsp;to&nbsp;the&nbsp;workload.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence"><span class="id" type="section">SimplifyJobSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Use&nbsp;the&nbsp;alternative&nbsp;definition&nbsp;of&nbsp;task&nbsp;interference,&nbsp;based&nbsp;on<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;individual&nbsp;job&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_use_another_definition"><span class="id" type="lemma">interference_bound_edf_use_another_definition</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">|</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j</span> <span class="id" type="notation">==</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remove&nbsp;the&nbsp;elements&nbsp;that&nbsp;we&nbsp;don't&nbsp;care&nbsp;about&nbsp;from&nbsp;the&nbsp;sum&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_simpl_by_filtering_interfering_jobs"><span class="id" type="lemma">interference_bound_edf_simpl_by_filtering_interfering_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">|</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j</span> <span class="id" type="notation">==</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;we&nbsp;consider&nbsp;the&nbsp;sum&nbsp;over&nbsp;the&nbsp;sorted&nbsp;sequence&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_simpl_by_sorting_interfering_jobs"><span class="id" type="lemma">interference_bound_edf_simpl_by_sorting_interfering_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Note&nbsp;that&nbsp;both&nbsp;sequences&nbsp;have&nbsp;the&nbsp;same&nbsp;set&nbsp;of&nbsp;elements.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_job_in_same_sequence"><span class="id" type="lemma">interference_bound_edf_job_in_same_sequence</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also&nbsp;recall&nbsp;that&nbsp;all&nbsp;jobs&nbsp;in&nbsp;the&nbsp;sorted&nbsp;sequence&nbsp;is&nbsp;an&nbsp;interfering&nbsp;job&nbsp;of&nbsp;tsk_k,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_all_jobs_from_tsk_k"><span class="id" type="lemma">interference_bound_edf_all_jobs_from_tsk_k</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...and&nbsp;consecutive&nbsp;jobs&nbsp;are&nbsp;ordered&nbsp;by&nbsp;arrival.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_jobs_ordered_by_arrival"><span class="id" type="lemma">interference_bound_edf_jobs_ordered_by_arrival</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span> <span class="id" type="var">elem</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">).-1</span> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.order"><span class="id" type="variable">order</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="interference_bound_edf.html#i"><span class="id" type="variable">i</span></a>) (<span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="interference_bound_edf.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">.+1</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;for&nbsp;any&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk_k,&nbsp;the&nbsp;interference&nbsp;is&nbsp;bounded&nbsp;by&nbsp;the&nbsp;task&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_interference_le_task_cost"><span class="id" type="lemma">interference_bound_edf_interference_le_task_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> (<span class="id" type="var">INi</span>: <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.SimplifyJobSequence"><span class="id" type="section">SimplifyJobSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;some&nbsp;facts&nbsp;relating&nbsp;job&nbsp;deadlines&nbsp;and&nbsp;interference&nbsp;under&nbsp;EDF.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF"><span class="id" type="section">FactsAboutEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Under&nbsp;EDF&nbsp;scheduling,&nbsp;a&nbsp;job&nbsp;only&nbsp;causes&nbsp;interference&nbsp;if&nbsp;its&nbsp;deadline<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;larger&nbsp;than&nbsp;the&nbsp;deadline&nbsp;of&nbsp;the&nbsp;analyzed&nbsp;job.&nbsp;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO:&nbsp;Should&nbsp;this&nbsp;be&nbsp;in&nbsp;the&nbsp;interference.v&nbsp;file?&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_under_edf_implies_shorter_deadlines"><span class="id" type="lemma">interference_under_edf_implies_shorter_deadlines</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span> <span class="id" type="var">j'</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#j'"><span class="id" type="variable">j'</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="interference_bound_edf.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#j'"><span class="id" type="variable">j'</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#j'"><span class="id" type="variable">j'</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.FactsAboutEDF"><span class="id" type="section">FactsAboutEDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;if&nbsp;the&nbsp;number&nbsp;of&nbsp;jobs&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;n_k,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;workload&nbsp;bound&nbsp;trivially&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs"><span class="id" type="section">InterferenceFewJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs.H_few_jobs"><span class="id" type="variable">H_few_jobs</span></a>: <span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_at_most_n_k_jobs"><span class="id" type="lemma">interference_bound_edf_holds_for_at_most_n_k_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <span class="id" type="var">j</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound"><span class="id" type="variable">interference_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceFewJobs"><span class="id" type="section">InterferenceFewJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Otherwise,&nbsp;assume&nbsp;that&nbsp;the&nbsp;number&nbsp;of&nbsp;jobs&nbsp;is&nbsp;larger&nbsp;than&nbsp;n_k&nbsp;&gt;=&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs"><span class="id" type="section">InterferenceManyJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.H_many_jobs"><span class="id" type="variable">H_many_jobs</span></a>: <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;This&nbsp;trivially&nbsp;implies&nbsp;that&nbsp;there's&nbsp;at&nbsp;least&nbsp;one&nbsp;job.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_at_least_one_job"><span class="id" type="lemma">interference_bound_edf_at_least_one_job</span></a>: <span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;j_fst&nbsp;be&nbsp;the&nbsp;first&nbsp;job,&nbsp;and&nbsp;a_fst&nbsp;its&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem"><span class="id" type="variable">elem</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> := <span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;some&nbsp;basic&nbsp;lemmas&nbsp;about&nbsp;j_fst.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob"><span class="id" type="section">FactsAboutFirstJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;first&nbsp;job&nbsp;is&nbsp;an&nbsp;interfering&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk_k.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_fst_is_job_of_tsk_k"><span class="id" type="lemma">interference_bound_edf_j_fst_is_job_of_tsk_k</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;deadline&nbsp;of&nbsp;j_fst&nbsp;is&nbsp;the&nbsp;deadline&nbsp;of&nbsp;tsk_k.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_fst_deadline"><span class="id" type="lemma">interference_bound_edf_j_fst_deadline</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;deadline&nbsp;of&nbsp;j_i&nbsp;is&nbsp;the&nbsp;deadline&nbsp;of&nbsp;tsk_i.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_i_deadline"><span class="id" type="lemma">interference_bound_edf_j_i_deadline</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_i"><span class="id" type="variable">tsk_i</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;j_fst&nbsp;completes&nbsp;by&nbsp;its&nbsp;response-time&nbsp;bound,&nbsp;then&nbsp;t1&nbsp;&lt;=&nbsp;a_fst&nbsp;+&nbsp;R_k,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;t1&nbsp;is&nbsp;the&nbsp;beginning&nbsp;of&nbsp;the&nbsp;time&nbsp;window&nbsp;(arrival&nbsp;of&nbsp;j_i).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval"><span class="id" type="lemma">interference_bound_edf_j_fst_completion_implies_rt_bound_inside_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> (<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.FactsAboutFirstJob"><span class="id" type="section">FactsAboutFirstJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;let's&nbsp;prove&nbsp;the&nbsp;interference&nbsp;bound&nbsp;for&nbsp;the&nbsp;particular&nbsp;case&nbsp;of&nbsp;a&nbsp;single&nbsp;job.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;case&nbsp;must&nbsp;be&nbsp;solved&nbsp;separately&nbsp;because&nbsp;the&nbsp;single&nbsp;job&nbsp;can&nbsp;symultaneously<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;carry-in&nbsp;and&nbsp;carry-out&nbsp;job,&nbsp;so&nbsp;its&nbsp;response&nbsp;time&nbsp;is&nbsp;not&nbsp;necessarily<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bounded&nbsp;by&nbsp;R_k&nbsp;(from&nbsp;the&nbsp;hypothesis&nbsp;H_all_previous_jobs_completed_on_time).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob"><span class="id" type="section">InterferenceSingleJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;there's&nbsp;at&nbsp;least&nbsp;one&nbsp;job&nbsp;in&nbsp;the&nbsp;sorted&nbsp;list.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.H_only_one_job"><span class="id" type="variable">H_only_one_job</span></a>: <span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 1.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;there's&nbsp;only&nbsp;one&nbsp;job,&nbsp;we&nbsp;simplify&nbsp;the&nbsp;terms&nbsp;in&nbsp;the&nbsp;interference&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_simpl_when_there's_one_job"><span class="id" type="lemma">interference_bound_edf_simpl_when_there's_one_job</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;if&nbsp;j_fst&nbsp;completes&nbsp;by&nbsp;its&nbsp;response-time&nbsp;bound&nbsp;R_k,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;then&nbsp;interference&nbsp;bound&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded"><span class="id" type="section">ResponseTimeOfSingleJobBounded</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded.H_j_fst_completed_by_rt_bound"><span class="id" type="variable">H_j_fst_completed_by_rt_bound</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> (<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_single_job_that_completes_on_time"><span class="id" type="lemma">interference_bound_edf_holds_for_single_job_that_completes_on_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.job_interference"><span class="id" type="definition">job_interference</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobBounded"><span class="id" type="section">ResponseTimeOfSingleJobBounded</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Else,&nbsp;if&nbsp;j_fst&nbsp;did&nbsp;not&nbsp;complete&nbsp;by&nbsp;its&nbsp;response-time&nbsp;bound,&nbsp;then<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;need&nbsp;a&nbsp;separate&nbsp;proof.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded"><span class="id" type="section">ResponseTimeOfSingleJobNotBounded</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded.H_j_fst_not_complete_by_rt_bound"><span class="id" type="variable">H_j_fst_not_complete_by_rt_bound</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> (<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;This&nbsp;trivially&nbsp;implies&nbsp;that&nbsp;a_fst&nbsp;+&nbsp;R_k&nbsp;lies&nbsp;after&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;interval,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;otherwise&nbsp;j_fst&nbsp;would&nbsp;have&nbsp;completed&nbsp;by&nbsp;its&nbsp;response-time&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_response_time_bound_of_j_fst_after_interval"><span class="id" type="lemma">interference_bound_edf_response_time_bound_of_j_fst_after_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;slack&nbsp;is&nbsp;too&nbsp;big&nbsp;(D_i&nbsp;&lt;&nbsp;D_k&nbsp;-&nbsp;R_k),&nbsp;j_fst&nbsp;causes&nbsp;no&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_big_slack"><span class="id" type="lemma">interference_bound_edf_holds_for_single_job_with_big_slack</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Else,&nbsp;if&nbsp;the&nbsp;slack&nbsp;is&nbsp;small,&nbsp;j_fst&nbsp;causes&nbsp;interference&nbsp;for&nbsp;no&nbsp;longer&nbsp;than<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D_i&nbsp;-&nbsp;(D_k&nbsp;-&nbsp;R_k).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_single_job_with_small_slack"><span class="id" type="lemma">interference_bound_edf_holds_for_single_job_with_small_slack</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob.ResponseTimeOfSingleJobNotBounded"><span class="id" type="section">ResponseTimeOfSingleJobNotBounded</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;By&nbsp;combining&nbsp;the&nbsp;results&nbsp;above,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;interference&nbsp;caused&nbsp;by&nbsp;the&nbsp;single&nbsp;job<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;bounded&nbsp;by&nbsp;D_i&nbsp;-&nbsp;(D_k&nbsp;-&nbsp;R_k),&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_slack"><span class="id" type="lemma">interference_bound_edf_interference_of_j_fst_limited_by_slack</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;thus&nbsp;the&nbsp;interference&nbsp;bound&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_a_single_job"><span class="id" type="lemma">interference_bound_edf_holds_for_a_single_job</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound"><span class="id" type="variable">interference_bound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceSingleJob"><span class="id" type="section">InterferenceSingleJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;consider&nbsp;the&nbsp;other&nbsp;case&nbsp;where&nbsp;there&nbsp;are&nbsp;at&nbsp;least&nbsp;two&nbsp;jobs:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;first&nbsp;job&nbsp;j_fst,&nbsp;and&nbsp;the&nbsp;last&nbsp;job&nbsp;j_lst.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs"><span class="id" type="section">InterferenceTwoOrMoreJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;there&nbsp;are&nbsp;at&nbsp;least&nbsp;two&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.H_at_least_two_jobs"><span class="id" type="variable">H_at_least_two_jobs</span></a> : <span class="id" type="definition">size</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+2</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;j_lst&nbsp;be&nbsp;the&nbsp;last&nbsp;job&nbsp;of&nbsp;the&nbsp;sequence&nbsp;and&nbsp;a_lst&nbsp;its&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> := <span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst"><span class="id" type="variable">a_lst</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;some&nbsp;basic&nbsp;lemmas&nbsp;about&nbsp;the&nbsp;first&nbsp;and&nbsp;last&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs"><span class="id" type="section">FactsAboutFirstAndLastJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;last&nbsp;job&nbsp;is&nbsp;an&nbsp;interfering&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk_k.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_lst_is_job_of_tsk_k"><span class="id" type="lemma">interference_bound_edf_j_lst_is_job_of_tsk_k</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;deadline&nbsp;of&nbsp;j_lst&nbsp;is&nbsp;the&nbsp;deadline&nbsp;of&nbsp;tsk_k.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_lst_deadline"><span class="id" type="lemma">interference_bound_edf_j_lst_deadline</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;first&nbsp;job&nbsp;arrives&nbsp;before&nbsp;the&nbsp;last&nbsp;job.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_fst_before_j_lst"><span class="id" type="lemma">interference_bound_edf_j_fst_before_j_lst</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;last&nbsp;job&nbsp;arrives&nbsp;before&nbsp;the&nbsp;end&nbsp;of&nbsp;the&nbsp;interval.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_last_job_arrives_before_end_of_interval"><span class="id" type="lemma">interference_bound_edf_last_job_arrives_before_end_of_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Since&nbsp;there&nbsp;are&nbsp;multiple&nbsp;jobs,&nbsp;j_fst&nbsp;is&nbsp;far&nbsp;enough&nbsp;from&nbsp;the&nbsp;end&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;interval&nbsp;that&nbsp;its&nbsp;response-time&nbsp;bound&nbsp;is&nbsp;valid<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(by&nbsp;the&nbsp;assumption&nbsp;H_all_previous_jobs_completed_on_time).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_j_fst_completed_on_time"><span class="id" type="lemma">interference_bound_edf_j_fst_completed_on_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> (<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a>).<br/>
-&nbsp;Since&nbsp;jobs&nbsp;are&nbsp;sporadic,&nbsp;we&nbsp;know&nbsp;that&nbsp;the&nbsp;first&nbsp;job&nbsp;arrives<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;least&nbsp;p_k&nbsp;units&nbsp;before&nbsp;the&nbsp;second.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.FactsAboutFirstAndLastJobs"><span class="id" type="section">FactsAboutFirstAndLastJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;distance&nbsp;between&nbsp;the&nbsp;first&nbsp;and&nbsp;last&nbsp;jobs&nbsp;is&nbsp;at&nbsp;least<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num_mid_jobs&nbsp;+&nbsp;1&nbsp;periods.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_many_periods_in_between"><span class="id" type="lemma">interference_bound_edf_many_periods_in_between</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst"><span class="id" type="variable">a_lst</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">*</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;simplify,&nbsp;call&nbsp;the&nbsp;jobs&nbsp;'cur'&nbsp;and&nbsp;'next'&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Show&nbsp;that&nbsp;cur&nbsp;arrives&nbsp;earlier&nbsp;than&nbsp;next&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Show&nbsp;that&nbsp;both&nbsp;cur&nbsp;and&nbsp;next&nbsp;are&nbsp;in&nbsp;the&nbsp;arrival&nbsp;sequence&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Use&nbsp;the&nbsp;sporadic&nbsp;task&nbsp;model&nbsp;to&nbsp;conclude&nbsp;that&nbsp;cur&nbsp;and&nbsp;next&nbsp;are&nbsp;separated<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;at&nbsp;least&nbsp;(task_period&nbsp;tsk)&nbsp;units.&nbsp;Of&nbsp;course&nbsp;this&nbsp;only&nbsp;holds&nbsp;if&nbsp;cur&nbsp;!=&nbsp;next.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;we&nbsp;don't&nbsp;know&nbsp;much&nbsp;about&nbsp;the&nbsp;list&nbsp;(except&nbsp;that&nbsp;it's&nbsp;sorted),&nbsp;we&nbsp;must<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;also&nbsp;prove&nbsp;that&nbsp;it&nbsp;doesn't&nbsp;contain&nbsp;duplicates.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemma&nbsp;above,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;ratio&nbsp;n_k&nbsp;is&nbsp;at&nbsp;least&nbsp;the&nbsp;number&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;middle&nbsp;jobs&nbsp;+&nbsp;1,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_n_k_covers_middle_jobs_plus_one"><span class="id" type="lemma">interference_bound_edf_n_k_covers_middle_jobs_plus_one</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;which&nbsp;allows&nbsp;bounding&nbsp;the&nbsp;interference&nbsp;of&nbsp;the&nbsp;middle&nbsp;and&nbsp;last&nbsp;jobs<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;n_k&nbsp;multiplied&nbsp;by&nbsp;the&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_middle_and_last_jobs"><span class="id" type="lemma">interference_bound_edf_holds_for_middle_and_last_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span><span class="id" type="notation">.+1</span>) <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> <span class="id" type="notation">*</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.tsk_k"><span class="id" type="variable">tsk_k</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;since&nbsp;n_k&nbsp;&lt;&nbsp;sorted_jobs&nbsp;=&nbsp;num_mid_jobs&nbsp;+&nbsp;2,&nbsp;it&nbsp;follows&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_k&nbsp;=&nbsp;num_mid_jobs&nbsp;+&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_n_k_equals_num_mid_jobs_plus_one"><span class="id" type="lemma">interference_bound_edf_n_k_equals_num_mid_jobs_plus_one</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;After&nbsp;proving&nbsp;the&nbsp;bounds&nbsp;of&nbsp;the&nbsp;middle&nbsp;and&nbsp;last&nbsp;jobs,&nbsp;we&nbsp;do&nbsp;the&nbsp;same&nbsp;for<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;first&nbsp;job.&nbsp;This&nbsp;requires&nbsp;a&nbsp;different&nbsp;proof&nbsp;in&nbsp;order&nbsp;to&nbsp;exploit&nbsp;the&nbsp;slack.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob"><span class="id" type="section">InterferenceOfFirstJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;As&nbsp;required&nbsp;by&nbsp;the&nbsp;next&nbsp;lemma,&nbsp;in&nbsp;order&nbsp;to&nbsp;move&nbsp;(D_i&nbsp;%&nbsp;p_k)&nbsp;to&nbsp;the&nbsp;left&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;inequality&nbsp;(&lt;=),&nbsp;we&nbsp;must&nbsp;show&nbsp;that&nbsp;it&nbsp;is&nbsp;no&nbsp;smaller&nbsp;than&nbsp;the&nbsp;slack.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_remainder_ge_slack"><span class="id" type="lemma">interference_bound_edf_remainder_ge_slack</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;conclude&nbsp;that&nbsp;the&nbsp;interference&nbsp;bound&nbsp;holds,&nbsp;it&nbsp;suffices&nbsp;to&nbsp;show&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;reordered&nbsp;inequality&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_simpl_by_moving_to_left_side"><span class="id" type="lemma">interference_bound_edf_simpl_by_moving_to_left_side</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">*</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;that&nbsp;interference&nbsp;caused&nbsp;by&nbsp;j_fst&nbsp;is&nbsp;bounded&nbsp;by&nbsp;the&nbsp;length<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">a_fst</span></span> <span class="inlinecode">+</span> <span class="inlinecode"><span class="id" type="var">R_k</span>),</span> <span class="inlinecode">...</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_interference_of_j_fst_bounded_by_response_time"><span class="id" type="lemma">interference_bound_edf_interference_of_j_fst_bounded_by_response_time</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> 1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;which&nbsp;leads&nbsp;to&nbsp;the&nbsp;following&nbsp;bounds&nbsp;based&nbsp;on&nbsp;interval&nbsp;lengths.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_bounding_interference_with_interval_lengths"><span class="id" type="lemma">interference_bound_edf_bounding_interference_with_interval_lengths</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">*</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> 1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">+</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a><span class="id" type="notation">)</span> 1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">+</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst"><span class="id" type="variable">a_lst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a><span class="id" type="notation">)</span> 1.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;conclude,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;concatenation&nbsp;of&nbsp;these&nbsp;interval&nbsp;lengths&nbsp;equals<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(a_lst&nbsp;+&nbsp;D_k)&nbsp;-&nbsp;1,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_simpl_by_concatenation_of_intervals"><span class="id" type="lemma">interference_bound_edf_simpl_by_concatenation_of_intervals</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span> 1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">+</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a><span class="id" type="notation">)</span> 1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">+</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.a_fst"><span class="id" type="variable">a_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst"><span class="id" type="variable">a_lst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a><span class="id" type="notation">)</span> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.a_lst"><span class="id" type="variable">a_lst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;which&nbsp;results&nbsp;in&nbsp;proving&nbsp;that&nbsp;(a_lst&nbsp;+&nbsp;D_k)&nbsp;-&nbsp;t1&nbsp;&lt;=&nbsp;D_i.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;holds&nbsp;because&nbsp;high-priority&nbsp;jobs&nbsp;have&nbsp;earlier&nbsp;deadlines.&nbsp;Therefore,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;interference&nbsp;caused&nbsp;by&nbsp;the&nbsp;first&nbsp;job&nbsp;is&nbsp;bounded&nbsp;by&nbsp;D_i&nbsp;%&nbsp;p_k&nbsp;-&nbsp;(D_k&nbsp;-&nbsp;R_k).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack"><span class="id" type="lemma">interference_bound_edf_interference_of_j_fst_limited_by_remainder_and_slack</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_i"><span class="id" type="variable">D_i</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.p_k"><span class="id" type="variable">p_k</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.D_k"><span class="id" type="variable">D_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.R_k"><span class="id" type="variable">R_k</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.InterferenceOfFirstJob"><span class="id" type="section">InterferenceOfFirstJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;interference&nbsp;bound&nbsp;works&nbsp;in&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;of&nbsp;two&nbsp;or&nbsp;more&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="EDFSpecificBound.interference_bound_edf_holds_for_multiple_jobs"><span class="id" type="lemma">interference_bound_edf_holds_for_multiple_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+2</span><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_caused_by"><span class="id" type="variable">interference_caused_by</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span>) <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound"><span class="id" type="variable">interference_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Knowing&nbsp;that&nbsp;we&nbsp;have&nbsp;at&nbsp;least&nbsp;two&nbsp;elements,&nbsp;we&nbsp;take&nbsp;first&nbsp;and&nbsp;last&nbsp;out&nbsp;of&nbsp;the&nbsp;sum&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;use&nbsp;the&nbsp;lemmas&nbsp;we&nbsp;proved&nbsp;to&nbsp;show&nbsp;that&nbsp;the&nbsp;interference&nbsp;bound&nbsp;holds.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs.InterferenceTwoOrMoreJobs"><span class="id" type="section">InterferenceTwoOrMoreJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.InterferenceManyJobs"><span class="id" type="section">InterferenceManyJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="EDFSpecificBound.interference_bound_edf_bounds_interference"><span class="id" type="lemma">interference_bound_edf_bounds_interference</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof.interference_bound"><span class="id" type="variable">interference_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Use&nbsp;the&nbsp;definition&nbsp;of&nbsp;workload&nbsp;based&nbsp;on&nbsp;list&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;only&nbsp;care&nbsp;about&nbsp;the&nbsp;jobs&nbsp;that&nbsp;cause&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;order&nbsp;the&nbsp;list&nbsp;by&nbsp;job&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;workload&nbsp;bound&nbsp;holds&nbsp;if&nbsp;n_k<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;the&nbsp;number&nbsp;of&nbsp;interferings&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Find&nbsp;some&nbsp;dummy&nbsp;element&nbsp;to&nbsp;use&nbsp;in&nbsp;the&nbsp;nth&nbsp;function&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;index&nbsp;the&nbsp;sum&nbsp;to&nbsp;access&nbsp;the&nbsp;first&nbsp;and&nbsp;last&nbsp;elements.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;bound&nbsp;holds&nbsp;for&nbsp;an&nbsp;empty&nbsp;list&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;we&nbsp;show&nbsp;the&nbsp;same&nbsp;for&nbsp;a&nbsp;single&nbsp;job,&nbsp;or&nbsp;for&nbsp;multiple&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#EDFSpecificBound.ProofInterferenceBound"><span class="id" type="section">ProofInterferenceBound</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="interference_bound_edf.html#"><span class="id" type="module">EDFSpecificBound</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/job.html b/job.html
deleted file mode 100644
index 5d55aaa22..000000000
--- a/job.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>job</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library job</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a> <span class="id" type="library">ssrnat</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Properties&nbsp;of&nbsp;different&nbsp;types&nbsp;of&nbsp;job:&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="Job"><span class="id" type="module">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;1)&nbsp;Basic&nbsp;Job&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Job.ValidJob"><span class="id" type="section">ValidJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidJob.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="job.html#Job.ValidJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidJob.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="job.html#Job.ValidJob.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;cost&nbsp;must&nbsp;be&nbsp;positive.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_cost_positive"><span class="id" type="definition">job_cost_positive</span></a> (<span class="id" type="var">j</span>: <a class="idref" href="job.html#Job.ValidJob.Job"><span class="id" type="variable">Job</span></a>) := <a class="idref" href="job.html#Job.ValidJob.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="job.html#Job.ValidJob"><span class="id" type="section">ValidJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;2)&nbsp;real-time&nbsp;job&nbsp;(with&nbsp;a&nbsp;deadline)&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Job.ValidRealtimeJob"><span class="id" type="section">ValidRealtimeJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidRealtimeJob.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="job.html#Job.ValidRealtimeJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidRealtimeJob.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="job.html#Job.ValidRealtimeJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidRealtimeJob.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="job.html#Job.ValidRealtimeJob.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;deadline&nbsp;must&nbsp;be&nbsp;positive&nbsp;and&nbsp;no&nbsp;less&nbsp;than&nbsp;its&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_deadline_positive"><span class="id" type="definition">job_deadline_positive</span></a> := <a class="idref" href="job.html#Job.ValidRealtimeJob.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="job.html#Job.ValidRealtimeJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_cost_le_deadline"><span class="id" type="definition">job_cost_le_deadline</span></a> := <a class="idref" href="job.html#Job.ValidRealtimeJob.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#Job.ValidRealtimeJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="job.html#Job.ValidRealtimeJob.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="job.html#Job.ValidRealtimeJob.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.valid_realtime_job"><span class="id" type="definition">valid_realtime_job</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.job_cost_positive"><span class="id" type="definition">job_cost_positive</span></a> <a class="idref" href="job.html#Job.ValidRealtimeJob.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#Job.ValidRealtimeJob.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.job_cost_le_deadline"><span class="id" type="definition">job_cost_le_deadline</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.job_deadline_positive"><span class="id" type="definition">job_deadline_positive</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="job.html#Job.ValidRealtimeJob"><span class="id" type="section">ValidRealtimeJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;3)&nbsp;Job&nbsp;of&nbsp;sporadic&nbsp;task&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Job.ValidSporadicTaskJob"><span class="id" type="section">ValidSporadicTaskJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="job.html#Job.ValidSporadicTaskJob.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJob.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;cost&nbsp;cannot&nbsp;be&nbsp;larger&nbsp;than&nbsp;the&nbsp;task&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_cost_le_task_cost"><span class="id" type="definition">job_cost_le_task_cost</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.task_cost"><span class="id" type="variable">task_cost</span></a> (<a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;deadline&nbsp;must&nbsp;be&nbsp;equal&nbsp;to&nbsp;the&nbsp;task&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_deadline_eq_task_deadline"><span class="id" type="definition">job_deadline_eq_task_deadline</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.task_deadline"><span class="id" type="variable">task_deadline</span></a> (<a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_realtime_job"><span class="id" type="definition">valid_realtime_job</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJob.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.job_cost_le_task_cost"><span class="id" type="definition">job_cost_le_task_cost</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.job_deadline_eq_task_deadline"><span class="id" type="definition">job_deadline_eq_task_deadline</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="job.html#Job.ValidSporadicTaskJob"><span class="id" type="section">ValidSporadicTaskJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;4)&nbsp;Job&nbsp;of&nbsp;sporadic&nbsp;task&nbsp;with&nbsp;jitter&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Job.ValidSporadicTaskJobWithJitter"><span class="id" type="section">ValidSporadicTaskJobWithJitter</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.task_jitter"><span class="id" type="variable">task_jitter</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.job_jitter"><span class="id" type="variable">job_jitter</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Job.ValidSporadicTaskJobWithJitter.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;jitter&nbsp;cannot&nbsp;be&nbsp;larger&nbsp;than&nbsp;the&nbsp;task&nbsp;(maximum)&nbsp;jitter.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.job_jitter_leq_task_jitter"><span class="id" type="definition">job_jitter_leq_task_jitter</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.job_jitter"><span class="id" type="variable">job_jitter</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.task_jitter"><span class="id" type="variable">task_jitter</span></a> (<a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.j"><span class="id" type="variable">j</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="Job.ValidSporadicTaskJobWithJitter.j_is_valid_job"><span class="id" type="variable">j_is_valid_job</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Job.valid_sporadic_job_with_jitter"><span class="id" type="definition">valid_sporadic_job_with_jitter</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter.j_is_valid_job"><span class="id" type="variable">j_is_valid_job</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="job.html#Job.job_jitter_leq_task_jitter"><span class="id" type="definition">job_jitter_leq_task_jitter</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="job.html#Job.ValidSporadicTaskJobWithJitter"><span class="id" type="section">ValidSporadicTaskJobWithJitter</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="job.html#"><span class="id" type="module">Job</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/platform.html b/platform.html
deleted file mode 100644
index 08fc00139..000000000
--- a/platform.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>platform</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library platform</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="priority.html#"><span class="id" type="library">priority</span></a> <a class="idref" href="interference.html#"><span class="id" type="library">interference</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">ssrfun</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="Platform"><span class="id" type="module">Platform</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">Interference</span> <span class="id" type="var">Priority</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Platform.SchedulingInvariants"><span class="id" type="section">SchedulingInvariants</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;any&nbsp;job&nbsp;arrival&nbsp;sequence...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;we&nbsp;have&nbsp;a&nbsp;task&nbsp;set&nbsp;where&nbsp;all&nbsp;tasks&nbsp;have&nbsp;valid<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;and&nbsp;restricted&nbsp;deadlines.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Platform.SchedulingInvariants.FP"><span class="id" type="section">FP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;an&nbsp;FP&nbsp;policy,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.FP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant&nbsp;states&nbsp;that&nbsp;if&nbsp;a&nbsp;job&nbsp;is<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backlogged,&nbsp;then&nbsp;all&nbsp;the&nbsp;processors&nbsp;are&nbsp;busy&nbsp;with&nbsp;jobs<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;higher-priority&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Platform.FP_scheduling_invariant_holds"><span class="id" type="definition">FP_scheduling_invariant_holds</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">tsk</span>: <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="platform.html#tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">count</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">fun</span> <span class="id" type="var">tsk_other</span> : <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.is_interfering_task_fp"><span class="id" type="definition">is_interfering_task_fp</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.FP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="platform.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="platform.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_is_scheduled"><span class="id" type="definition">task_is_scheduled</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#tsk_other"><span class="id" type="variable">tsk_other</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a>) <a class="idref" href="platform.html#Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.FP"><span class="id" type="section">FP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Platform.SchedulingInvariants.JLDP"><span class="id" type="section">JLDP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;a&nbsp;JLFP/JLDP&nbsp;policy,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Platform.SchedulingInvariants.JLDP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a>: <a class="idref" href="priority.html#Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;the&nbsp;global&nbsp;scheduling&nbsp;invariant&nbsp;states&nbsp;that&nbsp;at&nbsp;any&nbsp;time&nbsp;t,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;a&nbsp;job&nbsp;J&nbsp;is&nbsp;backlogged,&nbsp;then&nbsp;all&nbsp;processors&nbsp;are&nbsp;busy&nbsp;with<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jobs&nbsp;of&nbsp;higher-priority.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Platform.JLFP_JLDP_scheduling_invariant_holds"><span class="id" type="definition">JLFP_JLDP_scheduling_invariant_holds</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">count</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">fun</span> <span class="id" type="var">j_other</span> =&gt; <a class="idref" href="platform.html#Platform.SchedulingInvariants.JLDP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="platform.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="schedule.html#Schedule.jobs_scheduled_at"><span class="id" type="definition">jobs_scheduled_at</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas.H_invariant_holds"><span class="id" type="variable">H_invariant_holds</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.JLFP_JLDP_scheduling_invariant_holds"><span class="id" type="definition">JLFP_JLDP_scheduling_invariant_holds</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;job&nbsp;which&nbsp;is&nbsp;interfering&nbsp;has&nbsp;higher&nbsp;or&nbsp;equal&nbsp;priority&nbsp;to&nbsp;the&nbsp;interfered&nbsp;one.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Platform.interfering_job_has_higher_eq_prio"><span class="id" type="lemma">interfering_job_has_higher_eq_prio</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> <span class="id" type="var">j_other</span> <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.SchedulingInvariants.JLDP.higher_eq_priority"><span class="id" type="variable">higher_eq_priority</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="platform.html#j_other"><span class="id" type="variable">j_other</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;task&nbsp;set&nbsp;has&nbsp;no&nbsp;duplicates.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas.H_ts_is_a_set"><span class="id" type="variable">H_ts_is_a_set</span></a>: <span class="id" type="definition">uniq</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;all&nbsp;jobs&nbsp;are&nbsp;from&nbsp;the&nbsp;taskset,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas.H_all_jobs_from_taskset"><span class="id" type="variable">H_all_jobs_from_taskset</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>), <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;a&nbsp;single&nbsp;job&nbsp;does&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;jobs&nbsp;from&nbsp;the&nbsp;same&nbsp;task&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Platform.SchedulingInvariants.JLDP.BasicLemmas.H_no_intra_task_parallelism"><span class="id" type="variable">H_no_intra_task_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel"><span class="id" type="definition">jobs_of_same_task_dont_execute_in_parallel</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Platform.scheduled_jobs_unique"><span class="id" type="lemma">scheduled_jobs_unique</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">uniq</span> (<a class="idref" href="schedule.html#Schedule.jobs_scheduled_at"><span class="id" type="definition">jobs_scheduled_at</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a>).<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;a&nbsp;job&nbsp;isn't&nbsp;scheduled,&nbsp;the&nbsp;processor&nbsp;are&nbsp;busy&nbsp;with&nbsp;interfering&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Platform.cpus_busy_with_interfering_tasks"><span class="id" type="lemma">cpus_busy_with_interfering_tasks</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.arr_seq"><span class="id" type="variable">arr_seq</span></a>) <span class="id" type="var">tsk</span> <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="platform.html#tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">count</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">fun</span> <span class="id" type="var">j</span> : <a class="idref" href="platform.html#Platform.SchedulingInvariants.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.is_interfering_task_jlfp"><span class="id" type="definition">is_interfering_task_jlfp</span></a> <a class="idref" href="platform.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="interference.html#Interference.task_is_scheduled"><span class="id" type="definition">task_is_scheduled</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="platform.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="platform.html#t"><span class="id" type="variable">t</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="platform.html#Platform.SchedulingInvariants.ts"><span class="id" type="variable">ts</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="platform.html#Platform.SchedulingInvariants.num_cpus"><span class="id" type="variable">num_cpus</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;This&nbsp;requires&nbsp;further&nbsp;assumptions.&nbsp;*)</span><br/>
-<span class="comment">(*&nbsp;This&nbsp;requires&nbsp;further&nbsp;assumptions.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.JLDP.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants.JLDP"><span class="id" type="section">JLDP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="platform.html#Platform.SchedulingInvariants"><span class="id" type="section">SchedulingInvariants</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="platform.html#"><span class="id" type="module">Platform</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/priority.html b/priority.html
deleted file mode 100644
index 9310caf83..000000000
--- a/priority.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>priority</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library priority</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span>.<br/>
-<span class="id" type="keyword">Set Implicit Arguments</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definitions&nbsp;of&nbsp;FP&nbsp;and&nbsp;JLFP/JLDP&nbsp;priority&nbsp;relations.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="Priority"><span class="id" type="module">Priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">SporadicTask</span> <span class="id" type="var">Schedule</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.PriorityDefs"><span class="id" type="section">PriorityDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;given&nbsp;job&nbsp;arrival&nbsp;sequence.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.PriorityDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="priority.html#Priority.PriorityDefs.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;the&nbsp;following,&nbsp;we&nbsp;define&nbsp;all&nbsp;priority&nbsp;relations&nbsp;as&nbsp;non-strict,&nbsp;i.e.,&nbsp;they&nbsp;specify&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"job_high&nbsp;has&nbsp;higher&nbsp;priority&nbsp;than&nbsp;(or&nbsp;the&nbsp;same&nbsp;priority&nbsp;as)&nbsp;job_low".&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;JLDP&nbsp;policy&nbsp;is&nbsp;a&nbsp;generic&nbsp;relation&nbsp;between&nbsp;two&nbsp;jobs&nbsp;of&nbsp;an&nbsp;arrival&nbsp;sequence<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;can&nbsp;vary&nbsp;with&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a> := <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a> -&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="priority.html#Priority.PriorityDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a> -&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="priority.html#Priority.PriorityDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;FP&nbsp;policy&nbsp;is&nbsp;simply&nbsp;a&nbsp;relation&nbsp;between&nbsp;tasks.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Because&nbsp;our&nbsp;model&nbsp;of&nbsp;processor&nbsp;platform&nbsp;is&nbsp;based&nbsp;on&nbsp;a&nbsp;generic&nbsp;JLDP&nbsp;policy,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;generate&nbsp;a&nbsp;JLDP&nbsp;policy&nbsp;from&nbsp;an&nbsp;FP&nbsp;policy&nbsp;whenever&nbsp;required.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.PriorityDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>: <span class="id" type="abbreviation">eqType</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> := <a class="idref" href="priority.html#Priority.PriorityDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="priority.html#Priority.PriorityDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.PriorityDefs.ValidJLFPPolicy"><span class="id" type="section">ValidJLFPPolicy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>: <a class="idref" href="priority.html#Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;policy&nbsp;is&nbsp;reflexive,&nbsp;since&nbsp;a&nbsp;job&nbsp;has&nbsp;the&nbsp;same&nbsp;priority&nbsp;as&nbsp;itself.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.jlfp_is_reflexive"><span class="id" type="definition">jlfp_is_reflexive</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>, <span class="id" type="definition">reflexive</span> (<a class="idref" href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a> <a class="idref" href="priority.html#t"><span class="id" type="variable">t</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;policy&nbsp;is&nbsp;transitive.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.jlfp_is_transitive"><span class="id" type="definition">jlfp_is_transitive</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>, <span class="id" type="definition">transitive</span> (<a class="idref" href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a> <a class="idref" href="priority.html#t"><span class="id" type="variable">t</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;policy&nbsp;is&nbsp;total,&nbsp;since&nbsp;it&nbsp;must&nbsp;know&nbsp;the&nbsp;priority&nbsp;of&nbsp;any&nbsp;two&nbsp;jobs&nbsp;at&nbsp;any&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.jlfp_is_total"><span class="id" type="definition">jlfp_is_total</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>, <span class="id" type="definition">total</span> (<a class="idref" href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a> <a class="idref" href="priority.html#t"><span class="id" type="variable">t</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;JLDP&nbsp;policy&nbsp;is&nbsp;valid&nbsp;iff&nbsp;it&nbsp;satisfies&nbsp;the&nbsp;three&nbsp;properties.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that,&nbsp;for&nbsp;generality,&nbsp;we&nbsp;don't&nbsp;enforce&nbsp;antisymmetry&nbsp;and&nbsp;allow&nbsp;multiple<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jobs&nbsp;with&nbsp;same&nbsp;priority.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.valid_jldp_policy"><span class="id" type="definition">valid_jldp_policy</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#Priority.jlfp_is_reflexive"><span class="id" type="definition">jlfp_is_reflexive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="priority.html#Priority.jlfp_is_transitive"><span class="id" type="definition">jlfp_is_transitive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="priority.html#Priority.jlfp_is_total"><span class="id" type="definition">jlfp_is_total</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.PriorityDefs.ValidJLFPPolicy"><span class="id" type="section">ValidJLFPPolicy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.PriorityDefs.ValidFPPolicy"><span class="id" type="section">ValidFPPolicy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.PriorityDefs.ValidFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.fp_is_reflexive"><span class="id" type="definition">fp_is_reflexive</span></a> := <span class="id" type="definition">reflexive</span> <a class="idref" href="priority.html#Priority.PriorityDefs.ValidFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.fp_is_transitive"><span class="id" type="definition">fp_is_transitive</span></a> := <span class="id" type="definition">transitive</span> <a class="idref" href="priority.html#Priority.PriorityDefs.ValidFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.fp_is_total"><span class="id" type="definition">fp_is_total</span></a> := <span class="id" type="definition">total</span> <a class="idref" href="priority.html#Priority.PriorityDefs.ValidFPPolicy.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;enforce&nbsp;the&nbsp;same&nbsp;restrictions&nbsp;for&nbsp;FP&nbsp;policy:&nbsp;reflexive,&nbsp;transitive,&nbsp;total.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.valid_fp_policy"><span class="id" type="definition">valid_fp_policy</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#Priority.fp_is_reflexive"><span class="id" type="definition">fp_is_reflexive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="priority.html#Priority.fp_is_transitive"><span class="id" type="definition">fp_is_transitive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="priority.html#Priority.fp_is_total"><span class="id" type="definition">fp_is_total</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.PriorityDefs.ValidFPPolicy"><span class="id" type="section">ValidFPPolicy</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.PriorityDefs"><span class="id" type="section">PriorityDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.RateDeadlineMonotonic"><span class="id" type="section">RateDeadlineMonotonic</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.RateDeadlineMonotonic.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.RateDeadlineMonotonic.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Rate-Monotonic&nbsp;and&nbsp;Deadline-Monotonic&nbsp;as&nbsp;priority&nbsp;order&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.RM"><span class="id" type="definition">RM</span></a> (<span class="id" type="var">tsk1</span> <span class="id" type="var">tsk2</span>: <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) := <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="priority.html#tsk1"><span class="id" type="variable">tsk1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="priority.html#tsk2"><span class="id" type="variable">tsk2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.DM"><span class="id" type="definition">DM</span></a> (<span class="id" type="var">tsk1</span> <span class="id" type="var">tsk2</span>: <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) := <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="priority.html#tsk1"><span class="id" type="variable">tsk1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="priority.html#tsk2"><span class="id" type="variable">tsk2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Rate-Montonic&nbsp;is&nbsp;a&nbsp;valid&nbsp;FP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.rm_is_valid"><span class="id" type="lemma">rm_is_valid</span></a> : <a class="idref" href="priority.html#Priority.valid_fp_policy"><span class="id" type="definition">valid_fp_policy</span></a> <a class="idref" href="priority.html#Priority.RM"><span class="id" type="definition">RM</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Deadline-Monotonic&nbsp;is&nbsp;a&nbsp;valid&nbsp;FP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.dm_is_valid"><span class="id" type="lemma">dm_is_valid</span></a> : <a class="idref" href="priority.html#Priority.valid_fp_policy"><span class="id" type="definition">valid_fp_policy</span></a> <a class="idref" href="priority.html#Priority.DM"><span class="id" type="definition">DM</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.RateDeadlineMonotonic"><span class="id" type="section">RateDeadlineMonotonic</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.GeneralizeFP"><span class="id" type="section">GeneralizeFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.GeneralizeFP.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="priority.html#Priority.GeneralizeFP.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="priority.html#Priority.GeneralizeFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.GeneralizeFP.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="priority.html#Priority.GeneralizeFP.Job"><span class="id" type="variable">Job</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.GeneralizeFP.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;define&nbsp;a&nbsp;function&nbsp;to&nbsp;get&nbsp;from&nbsp;FP&nbsp;to&nbsp;JLDP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.fp_to_jldp"><span class="id" type="definition">fp_to_jldp</span></a> (<span class="id" type="var">task_hp</span>: <a class="idref" href="priority.html#Priority.fp_policy"><span class="id" type="definition">fp_policy</span></a> <a class="idref" href="priority.html#Priority.GeneralizeFP.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) : <a class="idref" href="priority.html#Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a> <a class="idref" href="priority.html#Priority.GeneralizeFP.arr_seq"><span class="id" type="variable">arr_seq</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">fun</span> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) (<span class="id" type="var">jhigh</span> <span class="id" type="var">jlow</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="priority.html#Priority.GeneralizeFP.arr_seq"><span class="id" type="variable">arr_seq</span></a>) =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#task_hp"><span class="id" type="variable">task_hp</span></a> (<a class="idref" href="priority.html#Priority.GeneralizeFP.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="priority.html#jhigh"><span class="id" type="variable">jhigh</span></a>) (<a class="idref" href="priority.html#Priority.GeneralizeFP.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="priority.html#jlow"><span class="id" type="variable">jlow</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;With&nbsp;this&nbsp;function,&nbsp;from&nbsp;a&nbsp;valid&nbsp;FP&nbsp;policy&nbsp;comes&nbsp;a&nbsp;valid&nbsp;JLDP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.valid_fp_is_valid_jldp"><span class="id" type="lemma">valid_fp_is_valid_jldp</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">task_hp</span> (<span class="id" type="var">FP</span>: <a class="idref" href="priority.html#Priority.valid_fp_policy"><span class="id" type="definition">valid_fp_policy</span></a> <a class="idref" href="priority.html#task_hp"><span class="id" type="variable">task_hp</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#Priority.valid_jldp_policy"><span class="id" type="definition">valid_jldp_policy</span></a> (<a class="idref" href="priority.html#Priority.fp_to_jldp"><span class="id" type="definition">fp_to_jldp</span></a> <a class="idref" href="priority.html#task_hp"><span class="id" type="variable">task_hp</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.GeneralizeFP"><span class="id" type="section">GeneralizeFP</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.JLFPDefs"><span class="id" type="section">JLFPDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="priority.html#Priority.JLFPDefs.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.JLFPDefs.is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a>: <a class="idref" href="priority.html#Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a> <a class="idref" href="priority.html#Priority.JLFPDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;JLFP&nbsp;policy&nbsp;is&nbsp;a&nbsp;JLDP&nbsp;policy&nbsp;where&nbsp;the&nbsp;priorities&nbsp;do&nbsp;not&nbsp;vary&nbsp;with&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.is_jlfp_policy"><span class="id" type="definition">is_jlfp_policy</span></a> (<span class="id" type="var">is_higher_priority</span>: <a class="idref" href="priority.html#Priority.jldp_policy"><span class="id" type="definition">jldp_policy</span></a> <a class="idref" href="priority.html#Priority.JLFPDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j1</span> <span class="id" type="var">j2</span> <span class="id" type="var">t</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a> <a class="idref" href="priority.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="priority.html#j1"><span class="id" type="variable">j1</span></a> <a class="idref" href="priority.html#j2"><span class="id" type="variable">j2</span></a> -&gt; <a class="idref" href="priority.html#is_higher_priority"><span class="id" type="variable">is_higher_priority</span></a> <a class="idref" href="priority.html#t'"><span class="id" type="variable">t'</span></a> <a class="idref" href="priority.html#j1"><span class="id" type="variable">j1</span></a> <a class="idref" href="priority.html#j2"><span class="id" type="variable">j2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Lemma:&nbsp;every&nbsp;FP&nbsp;policy&nbsp;is&nbsp;a&nbsp;JLFP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.JLFPDefs.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="priority.html#Priority.JLFPDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="priority.html#Priority.JLFPDefs.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.fp_is_jlfp"><span class="id" type="lemma">fp_is_jlfp</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">fp_higher_priority</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="priority.html#Priority.is_jlfp_policy"><span class="id" type="definition">is_jlfp_policy</span></a> (<a class="idref" href="priority.html#Priority.fp_to_jldp"><span class="id" type="definition">fp_to_jldp</span></a> <a class="idref" href="priority.html#Priority.JLFPDefs.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="priority.html#fp_higher_priority"><span class="id" type="variable">fp_higher_priority</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.JLFPDefs"><span class="id" type="section">JLFPDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Priority.EDFDefs"><span class="id" type="section">EDFDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.EDFDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="priority.html#Priority.EDFDefs.Job"><span class="id" type="variable">Job</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Priority.EDFDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="priority.html#Priority.EDFDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Priority.EDF"><span class="id" type="definition">EDF</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) (<span class="id" type="var">j1</span> <span class="id" type="var">j2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="priority.html#Priority.EDFDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="priority.html#j1"><span class="id" type="variable">j1</span></a> <span class="id" type="notation">+</span> <a class="idref" href="priority.html#Priority.EDFDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="priority.html#j1"><span class="id" type="variable">j1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="priority.html#j2"><span class="id" type="variable">j2</span></a> <span class="id" type="notation">+</span> <a class="idref" href="priority.html#Priority.EDFDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="priority.html#j2"><span class="id" type="variable">j2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Lemma:&nbsp;EDF&nbsp;is&nbsp;a&nbsp;JLFP&nbsp;policy.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.edf_jlfp"><span class="id" type="lemma">edf_jlfp</span></a> : <a class="idref" href="priority.html#Priority.is_jlfp_policy"><span class="id" type="definition">is_jlfp_policy</span></a> <a class="idref" href="priority.html#Priority.EDF"><span class="id" type="definition">EDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Priority.edf_valid_policy"><span class="id" type="lemma">edf_valid_policy</span></a> : <a class="idref" href="priority.html#Priority.valid_jldp_policy"><span class="id" type="definition">valid_jldp_policy</span></a> <a class="idref" href="priority.html#Priority.EDF"><span class="id" type="definition">EDF</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#Priority.EDFDefs"><span class="id" type="section">EDFDefs</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="priority.html#"><span class="id" type="module">Priority</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/response_time.html b/response_time.html
deleted file mode 100644
index c4d822ddf..000000000
--- a/response_time.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>response_time</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library response_time</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definition&nbsp;of&nbsp;response-time&nbsp;bound&nbsp;and&nbsp;some&nbsp;simple&nbsp;lemmas.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="ResponseTime"><span class="id" type="module">ResponseTime</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">SporadicTaskArrival</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTime.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;a&nbsp;task&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;a&nbsp;particular&nbsp;schedule,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;R&nbsp;is&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;of&nbsp;tsk&nbsp;in&nbsp;this&nbsp;schedule&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTime.ResponseTimeBound.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> := <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;iff&nbsp;any&nbsp;job&nbsp;j&nbsp;of&nbsp;tsk&nbsp;in&nbsp;this&nbsp;arrival&nbsp;sequence&nbsp;has<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;completed&nbsp;by&nbsp;(job_arrival&nbsp;j&nbsp;+&nbsp;R).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="response_time.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> <a class="idref" href="response_time.html#j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="response_time.html#ResponseTime.ResponseTimeBound"><span class="id" type="section">ResponseTimeBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTime.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;valid&nbsp;schedule...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="ResponseTime.BasicLemmas.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> := <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;where&nbsp;jobs&nbsp;dont&nbsp;execute&nbsp;after&nbsp;completion.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTime.BasicLemmas.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTime.BasicLemmas.SpecificJob"><span class="id" type="section">SpecificJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;for&nbsp;any&nbsp;job&nbsp;j&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...with&nbsp;response-time&nbsp;bound&nbsp;R&nbsp;in&nbsp;this&nbsp;schedule,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.SpecificJob.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTime.BasicLemmas.SpecificJob.response_time_bound"><span class="id" type="variable">response_time_bound</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;j&nbsp;at&nbsp;any&nbsp;time&nbsp;t'&nbsp;after&nbsp;its&nbsp;response&nbsp;time&nbsp;is&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTime.service_after_job_rt_zero"><span class="id" type="lemma">service_after_job_rt_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.R"><span class="id" type="variable">R</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;applies&nbsp;for&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;of&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTime.cumulative_service_after_job_rt_zero"><span class="id" type="lemma">cumulative_service_after_job_rt_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span> <span class="id" type="var">t''</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.R"><span class="id" type="variable">R</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="response_time.html#t''"><span class="id" type="variable">t''</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.SpecificJob"><span class="id" type="section">SpecificJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ResponseTime.BasicLemmas.AllJobs"><span class="id" type="section">AllJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;task&nbsp;tsk&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;for&nbsp;which&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;R&nbsp;is&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.AllJobs.R"><span class="id" type="variable">R</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTime.BasicLemmas.AllJobs.response_time_bound"><span class="id" type="variable">response_time_bound</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#ResponseTime.is_response_time_bound_of_task"><span class="id" type="definition">is_response_time_bound_of_task</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.R"><span class="id" type="variable">R</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;for&nbsp;any&nbsp;job&nbsp;j&nbsp;of&nbsp;this&nbsp;task,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ResponseTime.BasicLemmas.AllJobs.H_job_of_task"><span class="id" type="variable">H_job_of_task</span></a>: <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;at&nbsp;any&nbsp;time&nbsp;t'&nbsp;after&nbsp;the&nbsp;response&nbsp;time&nbsp;is&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTime.service_after_task_rt_zero"><span class="id" type="lemma">service_after_task_rt_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.R"><span class="id" type="variable">R</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;applies&nbsp;for&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;of&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ResponseTime.cumulative_service_after_task_rt_zero"><span class="id" type="lemma">cumulative_service_after_task_rt_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span> <span class="id" type="var">t''</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.R"><span class="id" type="variable">R</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="response_time.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="response_time.html#t''"><span class="id" type="variable">t''</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas.AllJobs"><span class="id" type="section">AllJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="response_time.html#ResponseTime.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="response_time.html#"><span class="id" type="module">ResponseTime</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/schedulability.html b/schedulability.html
deleted file mode 100644
index 8c19f2af9..000000000
--- a/schedulability.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>schedulability</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library schedulability</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definitions&nbsp;of&nbsp;deadline&nbsp;miss.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="Schedulability"><span class="id" type="module">Schedulability</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">Job</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.SchedulableDefs"><span class="id" type="section">SchedulableDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;the&nbsp;cost&nbsp;and&nbsp;deadline&nbsp;of&nbsp;a&nbsp;job&nbsp;is&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.SchedulableDefs.ScheduleOfJobs"><span class="id" type="section">ScheduleOfJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;For&nbsp;any&nbsp;job&nbsp;j&nbsp;in&nbsp;schedule&nbsp;sched,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.ScheduleOfJobs.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.ScheduleOfJobs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;job&nbsp;j&nbsp;misses&nbsp;no&nbsp;deadline&nbsp;in&nbsp;sched&nbsp;if&nbsp;it&nbsp;completed&nbsp;by&nbsp;its&nbsp;absolute&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs.j"><span class="id" type="variable">j</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfJobs"><span class="id" type="section">ScheduleOfJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.SchedulableDefs.ScheduleOfTasks"><span class="id" type="section">ScheduleOfTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.ScheduleOfTasks.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.ScheduleOfTasks.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.SchedulableDefs.ScheduleOfTasks.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Task&nbsp;tsk&nbsp;doesn't&nbsp;miss&nbsp;its&nbsp;deadline&nbsp;iff&nbsp;all&nbsp;of&nbsp;its&nbsp;jobs&nbsp;don't&nbsp;miss&nbsp;their&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Task&nbsp;tsk&nbsp;doesn't&nbsp;miss&nbsp;its&nbsp;deadline&nbsp;before&nbsp;time&nbsp;t'&nbsp;iff&nbsp;all&nbsp;of&nbsp;its&nbsp;jobs&nbsp;don't&nbsp;miss<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;their&nbsp;deadline&nbsp;by&nbsp;that&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedulability.task_misses_no_deadline_before"><span class="id" type="definition">task_misses_no_deadline_before</span></a> (<span class="id" type="var">t'</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs.ScheduleOfTasks"><span class="id" type="section">ScheduleOfTasks</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.SchedulableDefs"><span class="id" type="section">SchedulableDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;valid&nbsp;schedule...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;where&nbsp;jobs&nbsp;dont&nbsp;execute&nbsp;after&nbsp;completion.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedulability.BasicLemmas.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.BasicLemmas.SpecificJob"><span class="id" type="section">SpecificJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;for&nbsp;any&nbsp;job&nbsp;j&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...that&nbsp;doesn't&nbsp;miss&nbsp;a&nbsp;deadline&nbsp;in&nbsp;this&nbsp;schedule,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedulability.BasicLemmas.SpecificJob.no_deadline_miss"><span class="id" type="variable">no_deadline_miss</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.job_misses_no_deadline"><span class="id" type="definition">job_misses_no_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;j&nbsp;at&nbsp;any&nbsp;time&nbsp;t'&nbsp;after&nbsp;its&nbsp;deadline&nbsp;is&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedulability.service_after_job_deadline_zero"><span class="id" type="lemma">service_after_job_deadline_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;applies&nbsp;for&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;of&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedulability.cumulative_service_after_job_deadline_zero"><span class="id" type="lemma">cumulative_service_after_job_deadline_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span> <span class="id" type="var">t''</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedulability.html#t''"><span class="id" type="variable">t''</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.SpecificJob"><span class="id" type="section">SpecificJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedulability.BasicLemmas.AllJobs"><span class="id" type="section">AllJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;task&nbsp;tsk&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;that&nbsp;doesn't&nbsp;miss&nbsp;any&nbsp;deadline.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedulability.BasicLemmas.AllJobs.no_deadline_misses"><span class="id" type="variable">no_deadline_misses</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline"><span class="id" type="definition">task_misses_no_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;for&nbsp;any&nbsp;valid&nbsp;job&nbsp;j&nbsp;of&nbsp;this&nbsp;task,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedulability.BasicLemmas.AllJobs.H_job_of_task"><span class="id" type="variable">H_job_of_task</span></a>: <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedulability.BasicLemmas.AllJobs.H_valid_job"><span class="id" type="variable">H_valid_job</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;at&nbsp;any&nbsp;time&nbsp;t'&nbsp;after&nbsp;the&nbsp;deadline&nbsp;is&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedulability.service_after_task_deadline_zero"><span class="id" type="lemma">service_after_task_deadline_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;applies&nbsp;for&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;of&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedulability.cumulative_service_after_task_deadline_zero"><span class="id" type="lemma">cumulative_service_after_task_deadline_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t'</span> <span class="id" type="var">t''</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="schedulability.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedulability.html#t''"><span class="id" type="variable">t''</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas.AllJobs"><span class="id" type="section">AllJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#Schedulability.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="schedulability.html#"><span class="id" type="module">Schedulability</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/schedule.html b/schedule.html
deleted file mode 100644
index e15f823a2..000000000
--- a/schedule.html
+++ /dev/null
@@ -1,437 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>schedule</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library schedule</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a> <a class="idref" href="arrival_sequence.html#"><span class="id" type="library">arrival_sequence</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definition,&nbsp;properties&nbsp;and&nbsp;lemmas&nbsp;about&nbsp;schedules.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="Schedule"><span class="id" type="module">Schedule</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Export</span> <span class="id" type="var">ArrivalSequence</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;processor&nbsp;is&nbsp;defined&nbsp;as&nbsp;a&nbsp;bounded&nbsp;natural&nbsp;number:&nbsp;<span class="inlinecode">0,</span> <span class="inlinecode"><span class="id" type="var">num_cpus</span>).</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.processor"><span class="id" type="definition">processor</span></a> (<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <span class="id" type="notation">'</span><span class="id" type="notation">I_num_cpus</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ScheduleDef"><span class="id" type="section">ScheduleDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;the&nbsp;number&nbsp;of&nbsp;processors&nbsp;and&nbsp;an&nbsp;arrival&nbsp;sequence,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ScheduleDef.num_cpus"><span class="id" type="variable">num_cpus</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ScheduleDef.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#Schedule.ScheduleDef.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;we&nbsp;define&nbsp;a&nbsp;schedule&nbsp;as&nbsp;a&nbsp;mapping&nbsp;such&nbsp;that&nbsp;each&nbsp;processor<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;each&nbsp;time&nbsp;contains&nbsp;either&nbsp;a&nbsp;job&nbsp;from&nbsp;the&nbsp;sequence&nbsp;or&nbsp;none.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.schedule"><span class="id" type="definition">schedule</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.processor"><span class="id" type="definition">processor</span></a> <a class="idref" href="schedule.html#Schedule.ScheduleDef.num_cpus"><span class="id" type="variable">num_cpus</span></a> -&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#option"><span class="id" type="inductive">option</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedule.html#Schedule.ScheduleDef.arr_seq"><span class="id" type="variable">arr_seq</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ScheduleDef"><span class="id" type="section">ScheduleDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;define&nbsp;properties&nbsp;of&nbsp;jobs&nbsp;in&nbsp;a&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ScheduledJobs"><span class="id" type="section">ScheduledJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Given&nbsp;an&nbsp;arrival&nbsp;sequence,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ScheduledJobs.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#Schedule.ScheduledJobs.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>. <span class="comment">(*&nbsp;...&nbsp;a&nbsp;job&nbsp;cost&nbsp;function,&nbsp;...&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;the&nbsp;number&nbsp;of&nbsp;processors,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;we&nbsp;define&nbsp;the&nbsp;following&nbsp;properties&nbsp;for&nbsp;job&nbsp;j&nbsp;in&nbsp;schedule&nbsp;sched.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ScheduledJobs.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;job&nbsp;j&nbsp;is&nbsp;scheduled&nbsp;at&nbsp;time&nbsp;t&nbsp;iff&nbsp;there&nbsp;exists&nbsp;a&nbsp;cpu&nbsp;where&nbsp;it&nbsp;is&nbsp;mapped.*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">[</span><span class="id" type="notation">exists</span> <span class="id" type="var">cpu</span> <span class="id" type="keyword">in</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><a class="idref" href="schedule.html#Schedule.ScheduledJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a><span class="id" type="notation">)</span><span class="id" type="notation">,</span> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">cpu</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">==</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;processor&nbsp;cpu&nbsp;is&nbsp;idle&nbsp;at&nbsp;time&nbsp;t&nbsp;if&nbsp;it&nbsp;doesn't&nbsp;contain&nbsp;any&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.is_idle"><span class="id" type="definition">is_idle</span></a> (<span class="id" type="var">cpu</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><a class="idref" href="schedule.html#Schedule.ScheduledJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a><span class="id" type="notation">)</span>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.ScheduledJobs.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#cpu"><span class="id" type="variable">cpu</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;instantaneous&nbsp;service&nbsp;of&nbsp;job&nbsp;j&nbsp;at&nbsp;time&nbsp;t&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;cpus<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;it&nbsp;is&nbsp;scheduled&nbsp;on.&nbsp;Note&nbsp;that&nbsp;we&nbsp;use&nbsp;a&nbsp;sum&nbsp;to&nbsp;account&nbsp;for<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parallelism&nbsp;if&nbsp;required.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.service_at"><span class="id" type="definition">service_at</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">cpu</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a> <span class="id" type="notation">|</span> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">cpu</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">==</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a><span class="id" type="notation">)</span> 1.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;cumulative&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;during&nbsp;<span class="inlinecode">0,</span> <span class="inlinecode"><span class="id" type="var">t'</span>).</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.service"><span class="id" type="definition">service</span></a> (<span class="id" type="var">t'</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedule.html#t'"><span class="id" type="variable">t'</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <span class="id" type="var">t</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;cumulative&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;during&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>).</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.service_during"><span class="id" type="definition">service_during</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <span class="id" type="var">t</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Job&nbsp;j&nbsp;has&nbsp;completed&nbsp;at&nbsp;time&nbsp;t&nbsp;if&nbsp;it&nbsp;received&nbsp;enough&nbsp;service.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.completed"><span class="id" type="definition">completed</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <a class="idref" href="schedule.html#Schedule.service"><span class="id" type="definition">service</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">==</span> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Job&nbsp;j&nbsp;is&nbsp;pending&nbsp;at&nbsp;time&nbsp;t&nbsp;iff&nbsp;it&nbsp;has&nbsp;arrived&nbsp;but&nbsp;has&nbsp;not&nbsp;completed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.pending"><span class="id" type="definition">pending</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <a class="idref" href="arrival_sequence.html#ArrivalSequence.has_arrived"><span class="id" type="definition">has_arrived</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="notation">~~</span><a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Job&nbsp;j&nbsp;is&nbsp;backlogged&nbsp;at&nbsp;time&nbsp;t&nbsp;iff&nbsp;it&nbsp;is&nbsp;pending&nbsp;and&nbsp;not&nbsp;scheduled.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.backlogged"><span class="id" type="definition">backlogged</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <a class="idref" href="schedule.html#Schedule.pending"><span class="id" type="definition">pending</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="notation">~~</span><a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Job&nbsp;j&nbsp;is&nbsp;carry-in&nbsp;in&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span> <span class="inlinecode"><span class="id" type="var">iff</span></span> <span class="inlinecode"><span class="id" type="var">it</span></span> <span class="inlinecode"><span class="id" type="var">arrives</span></span> <span class="inlinecode"><span class="id" type="keyword">before</span></span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode"><span class="id" type="var">and</span></span> <span class="inlinecode"><span class="id" type="var">is</span></span>
-       <span class="inlinecode"><span class="id" type="var">not</span></span> <span class="inlinecode"><span class="id" type="var">complete</span></span> <span class="inlinecode"><span class="id" type="tactic">at</span></span> <span class="inlinecode"><span class="id" type="var">time</span></span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.carried_in"><span class="id" type="definition">carried_in</span></a> (<span class="id" type="var">t1</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrived_before"><span class="id" type="definition">arrived_before</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Job&nbsp;j&nbsp;is&nbsp;carry-out&nbsp;in&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span> <span class="inlinecode"><span class="id" type="var">iff</span></span> <span class="inlinecode"><span class="id" type="var">it</span></span> <span class="inlinecode"><span class="id" type="var">arrives</span></span> <span class="inlinecode"><span class="id" type="keyword">after</span></span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode"><span class="id" type="var">and</span></span> <span class="inlinecode"><span class="id" type="var">is</span></span>
-       <span class="inlinecode"><span class="id" type="var">not</span></span> <span class="inlinecode"><span class="id" type="var">complete</span></span> <span class="inlinecode"><span class="id" type="tactic">at</span></span> <span class="inlinecode"><span class="id" type="var">time</span></span> <span class="inlinecode"><span class="id" type="var">t2</span></span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.carried_out"><span class="id" type="definition">carried_out</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) := <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrived_between"><span class="id" type="definition">arrived_between</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;list&nbsp;of&nbsp;scheduled&nbsp;jobs&nbsp;at&nbsp;time&nbsp;t&nbsp;is&nbsp;the&nbsp;concatenation&nbsp;of&nbsp;the&nbsp;jobs<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scheduled&nbsp;on&nbsp;each&nbsp;processor.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.jobs_scheduled_at"><span class="id" type="definition">jobs_scheduled_at</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><span class="id" type="var">cpu</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="schedule.html#Schedule.ScheduledJobs.num_cpus"><span class="id" type="variable">num_cpus</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#make_sequence"><span class="id" type="definition">make_sequence</span></a> (<a class="idref" href="schedule.html#Schedule.ScheduledJobs.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">cpu</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;list&nbsp;of&nbsp;jobs&nbsp;scheduled&nbsp;during&nbsp;the&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t2</span>)</span> <span class="inlinecode"><span class="id" type="var">is</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span>
-       <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">duplicate</span>-<span class="id" type="var">free</span></span> <span class="inlinecode"><span class="id" type="var">concatenation</span></span> <span class="inlinecode"><span class="id" type="var">of</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">jobs</span></span> <span class="inlinecode"><span class="id" type="var">scheduled</span></span> <span class="inlinecode"><span class="id" type="tactic">at</span></span> <span class="inlinecode"><span class="id" type="var">instant</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">undup</span> (<a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">&lt;=</span></a> <span class="id" type="var">t</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_at"><span class="id" type="definition">jobs_scheduled_at</span></a> <span class="id" type="var">t</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ScheduledJobs"><span class="id" type="section">ScheduledJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;define&nbsp;properties&nbsp;of&nbsp;valid&nbsp;schedules.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ValidSchedules"><span class="id" type="section">ValidSchedules</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}. <span class="comment">(*&nbsp;Assume&nbsp;a&nbsp;job&nbsp;type&nbsp;with&nbsp;decidable&nbsp;equality,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#Schedule.ValidSchedules.Job"><span class="id" type="variable">Job</span></a>}. <span class="comment">(*&nbsp;...,&nbsp;an&nbsp;arrival&nbsp;sequence,&nbsp;...*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ValidSchedules.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#Schedule.ValidSchedules.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>. <span class="comment">(*&nbsp;...&nbsp;a&nbsp;cost&nbsp;function,&nbsp;....&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;and&nbsp;a&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ValidSchedules.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#Schedule.ValidSchedules.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#Schedule.ValidSchedules.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;define&nbsp;whether&nbsp;job&nbsp;parallelism&nbsp;is&nbsp;disallowed,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> <span class="id" type="var">t</span> <span class="id" type="var">cpu1</span> <span class="id" type="var">cpu2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.ValidSchedules.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#cpu1"><span class="id" type="variable">cpu1</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> -&gt; <a class="idref" href="schedule.html#Schedule.ValidSchedules.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#cpu2"><span class="id" type="variable">cpu2</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> -&gt; <a class="idref" href="schedule.html#cpu1"><span class="id" type="variable">cpu1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedule.html#cpu2"><span class="id" type="variable">cpu2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;whether&nbsp;a&nbsp;job&nbsp;can&nbsp;only&nbsp;be&nbsp;scheduled&nbsp;if&nbsp;it&nbsp;has&nbsp;arrived,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> <span class="id" type="var">t</span>, <a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#Schedule.ValidSchedules.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.has_arrived"><span class="id" type="definition">has_arrived</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;whether&nbsp;a&nbsp;job&nbsp;can&nbsp;be&nbsp;scheduled&nbsp;after&nbsp;it&nbsp;completes.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> <span class="id" type="var">t</span>, <a class="idref" href="schedule.html#Schedule.service"><span class="id" type="definition">service</span></a> <a class="idref" href="schedule.html#Schedule.ValidSchedules.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#Schedule.ValidSchedules.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ValidSchedules"><span class="id" type="section">ValidSchedules</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;some&nbsp;basic&nbsp;lemmas&nbsp;about&nbsp;service.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ServiceLemmas"><span class="id" type="section">ServiceLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;an&nbsp;arrival&nbsp;sequence,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;a&nbsp;job&nbsp;cost&nbsp;function,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ServiceLemmas.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#Schedule.ServiceLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;and&nbsp;a&nbsp;particular&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;prove&nbsp;some&nbsp;lemmas&nbsp;about&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;a&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ServiceLemmas.Basic"><span class="id" type="section">Basic</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;At&nbsp;any&nbsp;time&nbsp;t,&nbsp;if&nbsp;job&nbsp;j&nbsp;is&nbsp;not&nbsp;scheduled,&nbsp;it&nbsp;doesn't&nbsp;get&nbsp;service.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.not_scheduled_no_service"><span class="id" type="lemma">not_scheduled_no_service</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">~~</span> <a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt; <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;during&nbsp;a&nbsp;time&nbsp;interval&nbsp;is&nbsp;not&nbsp;zero,&nbsp;there<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;must&nbsp;be&nbsp;a&nbsp;time&nbsp;t&nbsp;in&nbsp;this&nbsp;interval&nbsp;where&nbsp;the&nbsp;service&nbsp;is&nbsp;not&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.job_scheduled_during_interval"><span class="id" type="lemma">job_scheduled_during_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">t</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">!=</span> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.Basic"><span class="id" type="section">Basic</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ServiceLemmas.NoParallelism"><span class="id" type="section">NoParallelism</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;jobs&nbsp;cannot&nbsp;execute&nbsp;in&nbsp;parallel,&nbsp;then...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedule.ServiceLemmas.NoParallelism.no_parallelism"><span class="id" type="variable">no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;at&nbsp;any&nbsp;time&nbsp;t&nbsp;is&nbsp;at&nbsp;most&nbsp;1,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.service_at_most_one"><span class="id" type="lemma">service_at_most_one</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span>, <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;=</span> 1.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...,&nbsp;which&nbsp;implies&nbsp;that&nbsp;the&nbsp;service&nbsp;receive&nbsp;during&nbsp;a&nbsp;interval<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;length&nbsp;delta&nbsp;is&nbsp;at&nbsp;most&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.cumulative_service_le_delta"><span class="id" type="lemma">cumulative_service_le_delta</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span> <span class="id" type="keyword">delta</span>, <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> (<a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>) <span class="id" type="notation">&lt;=</span> <span class="id" type="keyword">delta</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.NoParallelism"><span class="id" type="section">NoParallelism</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ServiceLemmas.Completion"><span class="id" type="section">Completion</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;completed&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedule.ServiceLemmas.Completion.H_completed_jobs"><span class="id" type="variable">H_completed_jobs</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;after&nbsp;job&nbsp;j&nbsp;completes,&nbsp;it&nbsp;remains&nbsp;completed.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.completion_monotonic"><span class="id" type="lemma">completion_monotonic</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#t'"><span class="id" type="variable">t'</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t'"><span class="id" type="variable">t'</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Also,&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j&nbsp;in&nbsp;any&nbsp;interval&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;its&nbsp;cost.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.cumulative_service_le_job_cost"><span class="id" type="lemma">cumulative_service_le_job_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="schedule.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.Completion"><span class="id" type="section">Completion</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Schedule.ServiceLemmas.Arrival"><span class="id" type="section">Arrival</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;jobs&nbsp;must&nbsp;arrive&nbsp;to&nbsp;execute.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="Schedule.ServiceLemmas.Arrival.H_jobs_must_arrive"><span class="id" type="variable">H_jobs_must_arrive</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;job&nbsp;j&nbsp;does&nbsp;not&nbsp;receive&nbsp;service&nbsp;at&nbsp;any&nbsp;time&nbsp;t&nbsp;prior&nbsp;to&nbsp;its&nbsp;arrival.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.service_before_job_arrival_zero"><span class="id" type="lemma">service_before_job_arrival_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span> (<span class="id" type="var">LT</span>: <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;same&nbsp;applies&nbsp;for&nbsp;the&nbsp;cumulative&nbsp;service&nbsp;received&nbsp;by&nbsp;job&nbsp;j.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.cumulative_service_before_job_arrival_zero"><span class="id" type="lemma">cumulative_service_before_job_arrival_zero</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span> (<span class="id" type="var">LT</span>: <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="schedule.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="schedule.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="var">i</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Hence,&nbsp;you&nbsp;can&nbsp;ignore&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;a&nbsp;job&nbsp;before&nbsp;its&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Schedule.service_before_arrival_eq_service_during"><span class="id" type="lemma">service_before_arrival_eq_service_during</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t0</span> <span class="id" type="var">t</span> (<span class="id" type="var">LT</span>: <a class="idref" href="schedule.html#t0"><span class="id" type="variable">t0</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="schedule.html#t0"><span class="id" type="variable">t0</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_at"><span class="id" type="definition">service_at</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas.Arrival"><span class="id" type="section">Arrival</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#Schedule.ServiceLemmas"><span class="id" type="section">ServiceLemmas</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#"><span class="id" type="module">Schedule</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Specific&nbsp;properties&nbsp;of&nbsp;a&nbsp;schedule&nbsp;of&nbsp;sporadic&nbsp;jobs.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="ScheduleOfSporadicTask"><span class="id" type="module">ScheduleOfSporadicTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">SporadicTask</span> <span class="id" type="var">Job</span>.<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Export</span> <span class="id" type="var">Schedule</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ScheduleOfSporadicTask.ValidSchedule"><span class="id" type="section">ValidSchedule</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;job&nbsp;cost&nbsp;and&nbsp;task&nbsp;are&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.ValidSchedule.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.ValidSchedule.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;in&nbsp;a&nbsp;valid&nbsp;schedule&nbsp;of&nbsp;sporadic&nbsp;tasks,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.ValidSchedule.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;jobs&nbsp;of&nbsp;the&nbsp;same&nbsp;task&nbsp;cannot&nbsp;execute&nbsp;in&nbsp;parallel.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ScheduleOfSporadicTask.jobs_of_same_task_dont_execute_in_parallel"><span class="id" type="definition">jobs_of_same_task_dont_execute_in_parallel</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span> <span class="id" type="var">j'</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.arr_seq"><span class="id" type="variable">arr_seq</span></a>) <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedule.html#j'"><span class="id" type="variable">j'</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt; <a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#j'"><span class="id" type="variable">j'</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt; <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedule.html#j'"><span class="id" type="variable">j'</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.ValidSchedule"><span class="id" type="section">ValidSchedule</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ScheduleOfSporadicTask.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;job&nbsp;cost&nbsp;and&nbsp;task&nbsp;are&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;in&nbsp;a&nbsp;valid&nbsp;schedule&nbsp;of&nbsp;sporadic&nbsp;tasks&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...such&nbsp;that&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;after&nbsp;completion,&nbsp;...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ScheduleOfSporadicTask.BasicLemmas.jobs_dont_execute_after_completion"><span class="id" type="variable">jobs_dont_execute_after_completion</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfSporadicTask.BasicLemmas.j"><span class="id" type="variable">j</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ScheduleOfSporadicTask.BasicLemmas.H_job_of_task"><span class="id" type="variable">H_job_of_task</span></a>: <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="ScheduleOfSporadicTask.BasicLemmas.valid_job"><span class="id" type="variable">valid_job</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remember&nbsp;that&nbsp;for&nbsp;any&nbsp;job&nbsp;of&nbsp;tsk,&nbsp;service&nbsp;&lt;=&nbsp;task_cost&nbsp;tsk&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ScheduleOfSporadicTask.cumulative_service_le_task_cost"><span class="id" type="lemma">cumulative_service_le_task_cost</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t</span> <span class="id" type="var">t'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="schedule.html#t'"><span class="id" type="variable">t'</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#ScheduleOfSporadicTask.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#"><span class="id" type="module">ScheduleOfSporadicTask</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Specific&nbsp;properties&nbsp;for&nbsp;a&nbsp;schedule&nbsp;of&nbsp;sporadic&nbsp;tasks&nbsp;with&nbsp;jitter.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="ScheduleOfTaskWithJitter"><span class="id" type="module">ScheduleOfTaskWithJitter</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Export</span> <span class="id" type="var">ScheduleOfSporadicTask</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter"><span class="id" type="section">ArrivalAfterJitter</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;job&nbsp;cost,&nbsp;task&nbsp;and&nbsp;jitter&nbsp;are&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter"><span class="id" type="variable">job_jitter</span></a>: <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;in&nbsp;a&nbsp;valid&nbsp;schedule&nbsp;of&nbsp;sporadic&nbsp;jobs&nbsp;with&nbsp;jitter,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...&nbsp;a&nbsp;job&nbsp;can&nbsp;only&nbsp;be&nbsp;scheduled&nbsp;after&nbsp;the&nbsp;jitter.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="ScheduleOfTaskWithJitter.jobs_execute_after_jitter"><span class="id" type="definition">jobs_execute_after_jitter</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span> <span class="id" type="var">t</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.scheduled"><span class="id" type="definition">scheduled</span></a> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.job_jitter"><span class="id" type="variable">job_jitter</span></a> <a class="idref" href="schedule.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="schedule.html#t"><span class="id" type="variable">t</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Note&nbsp;that&nbsp;if&nbsp;a&nbsp;job&nbsp;only&nbsp;executes&nbsp;after&nbsp;the&nbsp;jitter,&nbsp;it&nbsp;also&nbsp;only<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;executes&nbsp;after&nbsp;its&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="ScheduleOfTaskWithJitter.arrival_before_jitter"><span class="id" type="lemma">arrival_before_jitter</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.jobs_execute_after_jitter"><span class="id" type="definition">jobs_execute_after_jitter</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#ScheduleOfTaskWithJitter.ArrivalAfterJitter"><span class="id" type="section">ArrivalAfterJitter</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="schedule.html#"><span class="id" type="module">ScheduleOfTaskWithJitter</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/task.html b/task.html
deleted file mode 100644
index e4253dbfa..000000000
--- a/task.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>task</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library task</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a> <span class="id" type="library">ssrnat</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">fintype</span> <span class="id" type="library">seq</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Attributes&nbsp;of&nbsp;a&nbsp;valid&nbsp;sporadic&nbsp;task.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="SporadicTask"><span class="id" type="module">SporadicTask</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="SporadicTask.BasicTask"><span class="id" type="section">BasicTask</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTask.BasicTask.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="task.html#SporadicTask.BasicTask.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTask.BasicTask.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="task.html#SporadicTask.BasicTask.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTask.BasicTask.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="task.html#SporadicTask.BasicTask.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="SporadicTask.BasicTask.ValidParameters"><span class="id" type="section">ValidParameters</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="task.html#SporadicTask.BasicTask.Task"><span class="id" type="variable">Task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;cost,&nbsp;period&nbsp;and&nbsp;deadline&nbsp;of&nbsp;the&nbsp;task&nbsp;must&nbsp;be&nbsp;positive.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.task_cost_positive"><span class="id" type="definition">task_cost_positive</span></a> := <a class="idref" href="task.html#SporadicTask.BasicTask.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.task_period_positive"><span class="id" type="definition">task_period_positive</span></a> := <a class="idref" href="task.html#SporadicTask.BasicTask.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.task_deadline_positive"><span class="id" type="definition">task_deadline_positive</span></a> := <a class="idref" href="task.html#SporadicTask.BasicTask.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;task&nbsp;cost&nbsp;cannot&nbsp;be&nbsp;larger&nbsp;than&nbsp;the&nbsp;deadline&nbsp;or&nbsp;the&nbsp;period.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.task_cost_le_deadline"><span class="id" type="definition">task_cost_le_deadline</span></a> := <a class="idref" href="task.html#SporadicTask.BasicTask.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="task.html#SporadicTask.BasicTask.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.task_cost_le_period"><span class="id" type="definition">task_cost_le_period</span></a> := <a class="idref" href="task.html#SporadicTask.BasicTask.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="task.html#SporadicTask.BasicTask.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTask.is_valid_sporadic_task"><span class="id" type="definition">is_valid_sporadic_task</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTask.task_cost_positive"><span class="id" type="definition">task_cost_positive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="task.html#SporadicTask.task_period_positive"><span class="id" type="definition">task_period_positive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="task.html#SporadicTask.task_deadline_positive"><span class="id" type="definition">task_deadline_positive</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTask.task_cost_le_deadline"><span class="id" type="definition">task_cost_le_deadline</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="task.html#SporadicTask.task_cost_le_period"><span class="id" type="definition">task_cost_le_period</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="task.html#SporadicTask.BasicTask.ValidParameters"><span class="id" type="section">ValidParameters</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="task.html#SporadicTask.BasicTask"><span class="id" type="section">BasicTask</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="task.html#"><span class="id" type="module">SporadicTask</span></a>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Definition&nbsp;and&nbsp;properties&nbsp;of&nbsp;a&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="SporadicTaskset"><span class="id" type="module">SporadicTaskset</span></a>.<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Export</span> <span class="id" type="var">SporadicTask</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="SporadicTaskset.TasksetDefs"><span class="id" type="section">TasksetDefs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;task&nbsp;set&nbsp;is&nbsp;just&nbsp;a&nbsp;sequence&nbsp;of&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> (<span class="id" type="var">Task</span>: <span class="id" type="abbreviation">eqType</span>) := <span class="id" type="abbreviation">seq</span> <a class="idref" href="task.html#Task"><span class="id" type="variable">Task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;define&nbsp;some&nbsp;properties&nbsp;of&nbsp;a&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties"><span class="id" type="section">TasksetProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.Task"><span class="id" type="variable">Task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task"><span class="id" type="variable">is_valid_task</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTask.is_valid_sporadic_task"><span class="id" type="definition">is_valid_sporadic_task</span></a> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline"><span class="id" type="variable">task_deadline</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskset.TasksetDefs.TasksetProperties.ts"><span class="id" type="variable">ts</span></a>: <a class="idref" href="task.html#SporadicTaskset.taskset_of"><span class="id" type="definition">taskset_of</span></a> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.Task"><span class="id" type="variable">Task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;valid&nbsp;sporadic&nbsp;taskset&nbsp;only&nbsp;contains&nbsp;valid&nbsp;tasks.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskset.valid_sporadic_taskset"><span class="id" type="definition">valid_sporadic_taskset</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.is_valid_task"><span class="id" type="variable">is_valid_task</span></a> <a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;A&nbsp;task&nbsp;set&nbsp;can&nbsp;satisfy&nbsp;one&nbsp;of&nbsp;three&nbsp;deadline&nbsp;models:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implicit,&nbsp;restricted,&nbsp;or&nbsp;arbitrary.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskset.implicit_deadline_model"><span class="id" type="definition">implicit_deadline_model</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskset.restricted_deadline_model"><span class="id" type="definition">restricted_deadline_model</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">tsk</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.ts"><span class="id" type="variable">ts</span></a> -&gt; <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="task.html#tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskset.arbitrary_deadline_model"><span class="id" type="definition">arbitrary_deadline_model</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#True"><span class="id" type="inductive">True</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs.TasksetProperties"><span class="id" type="section">TasksetProperties</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="task.html#SporadicTaskset.TasksetDefs"><span class="id" type="section">TasksetDefs</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="task.html#"><span class="id" type="module">SporadicTaskset</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/task_arrival.html b/task_arrival.html
deleted file mode 100644
index 54e82efc2..000000000
--- a/task_arrival.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>task_arrival</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library task_arrival</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span>.<br/>
-
-<br/>
-<span class="comment">(*&nbsp;Properties&nbsp;of&nbsp;the&nbsp;job&nbsp;arrival.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Module</span> <a name="SporadicTaskArrival"><span class="id" type="module">SporadicTaskArrival</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Import</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">Schedule</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="SporadicTaskArrival.ArrivalModels"><span class="id" type="section">ArrivalModels</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;the&nbsp;task&nbsp;period&nbsp;is&nbsp;known.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskArrival.ArrivalModels.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskArrival.ArrivalModels.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.Job"><span class="id" type="variable">Job</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="SporadicTaskArrival.ArrivalModels.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;we&nbsp;define&nbsp;the&nbsp;sporadic&nbsp;task&nbsp;model&nbsp;as&nbsp;follows.*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span> <span class="id" type="var">j'</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<>'_x"><span class="id" type="notation">&lt;&gt;</span></a> <a class="idref" href="task_arrival.html#j'"><span class="id" type="variable">j'</span></a> -&gt; <span class="comment">(*&nbsp;Given&nbsp;two&nbsp;different&nbsp;jobs&nbsp;j&nbsp;and&nbsp;j'&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="task_arrival.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="task_arrival.html#j'"><span class="id" type="variable">j'</span></a> -&gt; <span class="comment">(*&nbsp;...&nbsp;of&nbsp;the&nbsp;same&nbsp;task,&nbsp;...&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="task_arrival.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="task_arrival.html#j'"><span class="id" type="variable">j'</span></a> -&gt; <span class="comment">(*&nbsp;...&nbsp;if&nbsp;the&nbsp;arrival&nbsp;of&nbsp;j&nbsp;precedes&nbsp;the&nbsp;arrival&nbsp;of&nbsp;j'&nbsp;...,&nbsp;&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;then&nbsp;the&nbsp;arrival&nbsp;of&nbsp;j&nbsp;and&nbsp;the&nbsp;arrival&nbsp;of&nbsp;j'&nbsp;are&nbsp;separated&nbsp;by&nbsp;at&nbsp;least&nbsp;one&nbsp;period.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="task_arrival.html#j'"><span class="id" type="variable">j'</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="task_arrival.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.task_period"><span class="id" type="variable">task_period</span></a> (<a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="task_arrival.html#j"><span class="id" type="variable">j</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="task_arrival.html#SporadicTaskArrival.ArrivalModels"><span class="id" type="section">ArrivalModels</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="task_arrival.html#"><span class="id" type="module">SporadicTaskArrival</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/util_divround.html b/util_divround.html
deleted file mode 100644
index 33a888e18..000000000
--- a/util_divround.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>util_divround</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library util_divround</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <span class="id" type="library">ssrbool</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">div</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="div_floor"><span class="id" type="definition">div_floor</span></a> (<span class="id" type="var">x</span> <span class="id" type="var">y</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> := <a class="idref" href="util_divround.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_divround.html#y"><span class="id" type="variable">y</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="div_ceil"><span class="id" type="definition">div_ceil</span></a> (<span class="id" type="var">x</span> <span class="id" type="var">y</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) := <span class="id" type="keyword">if</span> <a class="idref" href="util_divround.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">%|</span> <a class="idref" href="util_divround.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="keyword">then</span> <a class="idref" href="util_divround.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_divround.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="keyword">else</span> <span class="id" type="notation">(</span><a class="idref" href="util_divround.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_divround.html#y"><span class="id" type="variable">y</span></a><span class="id" type="notation">).+1</span>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/util_lemmas.html b/util_lemmas.html
deleted file mode 100644
index 8dda34891..000000000
--- a/util_lemmas.html
+++ /dev/null
@@ -1,480 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>util_lemmas</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library util_lemmas</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">tuple</span> <span class="id" type="library">path</span> <span class="id" type="library">div</span> <a class="idref" href="ssromega.html#"><span class="id" type="library">ssromega</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Section</span> <a name="Pair"><span class="id" type="section">Pair</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Context</span> {<span class="id" type="var">A</span> <span class="id" type="var">B</span>: <span class="id" type="keyword">Type</span>}.<br/>
-<span class="id" type="keyword">Variable</span> <a name="Pair.p"><span class="id" type="variable">p</span></a>: <a class="idref" href="util_lemmas.html#Pair.A"><span class="id" type="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#Pair.B"><span class="id" type="variable">B</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="pair_1st"><span class="id" type="definition">pair_1st</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="util_lemmas.html#Pair.p"><span class="id" type="variable">p</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="pair_2nd"><span class="id" type="definition">pair_2nd</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="util_lemmas.html#Pair.p"><span class="id" type="variable">p</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="util_lemmas.html#Pair"><span class="id" type="section">Pair</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Section</span> <a name="Triple"><span class="id" type="section">Triple</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Context</span> {<span class="id" type="var">A</span> <span class="id" type="var">B</span> <span class="id" type="var">C</span>: <span class="id" type="keyword">Type</span>}.<br/>
-<span class="id" type="keyword">Variable</span> <a name="Triple.p"><span class="id" type="variable">p</span></a>: <a class="idref" href="util_lemmas.html#Triple.A"><span class="id" type="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#Triple.B"><span class="id" type="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#Triple.C"><span class="id" type="variable">C</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="triple_1st"><span class="id" type="definition">triple_1st</span></a> (<span class="id" type="var">p</span>: <a class="idref" href="util_lemmas.html#Triple.A"><span class="id" type="variable">A</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#Triple.B"><span class="id" type="variable">B</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#Triple.C"><span class="id" type="variable">C</span></a>) := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a>).<br/>
-<span class="id" type="keyword">Definition</span> <a name="triple_2nd"><span class="id" type="definition">triple_2nd</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="util_lemmas.html#Triple.p"><span class="id" type="variable">p</span></a>).<br/>
-<span class="id" type="keyword">Definition</span> <a name="triple_3rd"><span class="id" type="definition">triple_3rd</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="util_lemmas.html#Triple.p"><span class="id" type="variable">p</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="util_lemmas.html#Triple"><span class="id" type="section">Triple</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\cat_ ( m &lt;= i &lt; n ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">i</span>, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \cat_ ( m &lt;= i &lt; n ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">"</span></a>\cat_ ( m &lt;= i &lt; n ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><span class="id" type="definition">cat</span><span class="id" type="notation">/</span><span class="id" type="notation">[::]</span><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">m</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="var">n</span><span class="id" type="notation">)</span> <span class="id" type="var">F</span>%<span class="id" type="var">N</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\cat_ ( m &lt;= i &lt; n | P ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">P</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">i</span>, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \cat_ ( m &lt;= i &lt; n | P ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_'|'_x_')'_x"><span class="id" type="notation">"</span></a>\cat_ ( m &lt;= i &lt; n | P ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><span class="id" type="definition">cat</span><span class="id" type="notation">/</span><span class="id" type="notation">[::]</span><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">m</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="var">n</span> <span class="id" type="notation">|</span> <span class="id" type="var">P</span><span class="id" type="notation">)</span> <span class="id" type="var">F</span>%<span class="id" type="var">N</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\sum_ ( ( m , n ) &lt;- r ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \sum_ ( ( m , n ) &lt;- r ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">"</span></a>\sum_ ( ( m , n ) &lt;- r ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <span class="id" type="var">r</span><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">F</span><span class="id" type="notation">)</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\sum_ ( ( m , n ) &lt;- r | P ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 30, <span class="id" type="var">P</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \sum_ ( ( m , n ) &lt;- r | P ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\sum_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">"</span></a>\sum_ ( ( m , n ) &lt;- r | P ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <span class="id" type="var">r</span> <span class="id" type="notation">|</span> <span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">P</span><span class="id" type="notation">))</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">F</span><span class="id" type="notation">)</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\max_ ( ( m , n ) &lt;- r ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \max_ ( ( m , n ) &lt;- r ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_')'_x"><span class="id" type="notation">"</span></a>\max_ ( ( m , n ) &lt;- r ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">max_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <span class="id" type="var">r</span><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">F</span><span class="id" type="notation">)</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\max_ ( ( m , n ) &lt;- r | P ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 30, <span class="id" type="var">P</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">m</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \max_ ( ( m , n ) &lt;- r | P ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\max_'_'('_'('_x_','_x_')'_'<-'_x_'|'_x_')'_x"><span class="id" type="notation">"</span></a>\max_ ( ( m , n ) &lt;- r | P ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">max_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <span class="id" type="var">r</span> <span class="id" type="notation">|</span> <span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">P</span><span class="id" type="notation">))</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">m</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">n</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <span class="id" type="var">i</span> <span class="id" type="keyword">in</span> <span class="id" type="var">F</span><span class="id" type="notation">)</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":seq_scope:'['_'seq'_'('_x_','_x_')'_'<-'_x_'|'_x_']'"><span class="id" type="notation">"</span></a>[ 'seq' ( x , y ) &lt;- s | C ]" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="definition">filter</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">i</span> =&gt; <span class="id" type="keyword">let</span> '<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a><span class="id" type="var">y</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> := <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="keyword">in</span> <span class="id" type="var">C</span>%<span class="id" type="var">B</span>) <span class="id" type="var">s</span>)<br/>
-&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 0, <span class="id" type="var">x</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 99,<br/>
-&nbsp;&nbsp;<span class="id" type="var">format</span> "[ '[hv' 'seq' ( x , y ) &lt;- s '/ ' | C ] ']'") : <span class="id" type="var">seq_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\cat_ ( i &lt; n ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">i</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \cat_ ( i &lt; n ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">"</span></a>\cat_ ( i &lt; n ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><span class="id" type="definition">cat</span><span class="id" type="notation">/</span><span class="id" type="notation">[::]</span><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="var">n</span><span class="id" type="notation">)</span> <span class="id" type="var">F</span>%<span class="id" type="var">N</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "\cat_ ( i &lt; n | P ) F"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">F</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 41, <span class="id" type="var">i</span>, <span class="id" type="var">n</span> <span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 50,<br/>
-&nbsp;&nbsp;&nbsp;<span class="id" type="var">format</span> "'[' \cat_ ( i &lt; n | P ) '/ ' F ']'").<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":nat_scope:'\cat_'_'('_x_'<'_x_'|'_x_')'_x"><span class="id" type="notation">"</span></a>\cat_ ( i &lt; n | P ) F" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><span class="id" type="definition">cat</span><span class="id" type="notation">/</span><span class="id" type="notation">[::]</span><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="var">n</span> <span class="id" type="notation">|</span> <span class="id" type="var">P</span><span class="id" type="notation">)</span> <span class="id" type="var">F</span>%<span class="id" type="var">N</span>) : <span class="id" type="var">nat_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Reserved Notation</span> "x \In A"<br/>
-&nbsp;&nbsp;(<span class="id" type="tactic">at</span> <span class="id" type="keyword">level</span> 70, <span class="id" type="var">format</span> "'[hv' x '/ ' \In A ']'", <span class="id" type="keyword">no</span> <span class="id" type="keyword">associativity</span>).<br/>
-
-<br/>
-<span class="id" type="keyword">Notation</span> <a name=":bool_scope:x_'\In'_x"><span class="id" type="notation">"</span></a>x \In A" :=<br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">if</span> <span class="id" type="var">A</span> <span class="id" type="var">is</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">B</span> <span class="id" type="keyword">then</span> <span class="id" type="definition">in_mem</span> <span class="id" type="var">x</span> (<span class="id" type="definition">mem</span> <span class="id" type="var">B</span>) <span class="id" type="keyword">else</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#false"><span class="id" type="constructor">false</span></a>) : <span class="id" type="var">bool_scope</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Ltac</span> <span class="id" type="var">des_eqrefl2</span> :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">match</span> <span class="id" type="keyword">goal</span> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <span class="id" type="var">H</span>: <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">X</span> <span class="id" type="keyword">as</span> <span class="id" type="var">id</span> <span class="id" type="keyword">return</span> (?<span class="id" type="var">X</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#id"><span class="id" type="variable">id</span></a> -&gt; <span class="id" type="var">_</span>) <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a>] |- <span class="id" type="var">_</span> =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">EQ</span> := <span class="id" type="tactic">fresh</span> "EQ" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">id'</span> := <span class="id" type="tactic">fresh</span> "x" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">revert</span> <span class="id" type="var">H</span>;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">generalize</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a> <span class="id" type="var">X</span>); <span class="id" type="tactic">generalize</span> <span class="id" type="var">X</span> <span class="id" type="tactic">at</span> 2 3;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">intros</span> <span class="id" type="var">id'</span> <span class="id" type="var">EQ</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">id'</span>; <span class="id" type="tactic">intros</span> <span class="id" type="var">H</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| |- <span class="id" type="keyword">context</span>[<span class="id" type="keyword">match</span> ?<span class="id" type="var">X</span> <span class="id" type="keyword">as</span> <span class="id" type="var">id</span> <span class="id" type="keyword">return</span> (?<span class="id" type="var">X</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#id"><span class="id" type="variable">id</span></a> -&gt; <span class="id" type="var">_</span>) <span class="id" type="keyword">with</span> <span class="id" type="var">_</span> =&gt; <span class="id" type="var">_</span> <span class="id" type="keyword">end</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a>] =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">EQ</span> := <span class="id" type="tactic">fresh</span> "EQ" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">id'</span> := <span class="id" type="tactic">fresh</span> "x" <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">generalize</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#eq_refl"><span class="id" type="constructor">Logic.eq_refl</span></a> <span class="id" type="var">X</span>); <span class="id" type="tactic">generalize</span> <span class="id" type="var">X</span> <span class="id" type="tactic">at</span> 2 3;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="tactic">intros</span> <span class="id" type="var">id'</span> <span class="id" type="var">EQ</span>; <span class="id" type="tactic">destruct</span> <span class="id" type="var">id'</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_bigcat_nat"><span class="id" type="lemma">mem_bigcat_nat</span></a>:<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>) <span class="id" type="var">x</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">j</span> (<span class="id" type="var">f</span>: <span class="id" type="var">_</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">LE</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>) (<span class="id" type="var">IN</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a><span class="id" type="notation">)</span>),<br/>
-&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">&lt;=</span></a> <span class="id" type="var">i</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <span class="id" type="var">i</span><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<='_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="fun_ord_to_nat"><span class="id" type="definition">fun_ord_to_nat</span></a> {<span class="id" type="var">n</span>} {<span class="id" type="var">T</span>} (<span class="id" type="var">x0</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>.<br/>
-<span class="comment">(*&nbsp;if&nbsp;x&nbsp;&lt;&nbsp;n,&nbsp;apply&nbsp;the&nbsp;function&nbsp;f&nbsp;in&nbsp;the&nbsp;(Ordinal&nbsp;x:&nbsp;'I_n),&nbsp;else&nbsp;return&nbsp;default&nbsp;x0.&nbsp;*)</span><br/>
-<span class="id" type="keyword">Defined</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="eq_fun_ord_to_nat"><span class="id" type="lemma">eq_fun_ord_to_nat</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> {<span class="id" type="var">T</span>: <span class="id" type="keyword">Type</span>} <span class="id" type="var">x0</span> (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">x</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="util_lemmas.html#fun_ord_to_nat"><span class="id" type="definition">fun_ord_to_nat</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a>) <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="eq_bigr_ord"><span class="id" type="lemma">eq_bigr_ord</span></a> <span class="id" type="var">T</span> <span class="id" type="var">n</span> <span class="id" type="var">op</span> <span class="id" type="var">idx</span> <span class="id" type="var">r</span> (<span class="id" type="var">P</span> : <span class="id" type="definition">pred</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">F1</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">F2</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :<br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> -&gt; <a class="idref" href="util_lemmas.html#F1"><span class="id" type="variable">F1</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#F2"><span class="id" type="variable">F2</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) -&gt;<br/>
-&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><a class="idref" href="util_lemmas.html#op"><span class="id" type="variable">op</span></a><span class="id" type="notation">/</span><a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F1"><span class="id" type="variable">F1</span></a> <span class="id" type="var">i</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><a class="idref" href="util_lemmas.html#op"><span class="id" type="variable">op</span></a><span class="id" type="notation">/</span><a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F2"><span class="id" type="variable">F2</span></a> <span class="id" type="var">i</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="big_mkord_ord"><span class="id" type="lemma">big_mkord_ord</span></a> {<span class="id" type="var">T</span>} {<span class="id" type="var">n</span>} {<span class="id" type="var">op</span>} {<span class="id" type="var">idx</span>} <span class="id" type="var">x0</span> (<span class="id" type="var">P</span> : <span class="id" type="definition">pred</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span>) (<span class="id" type="var">F</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :<br/>
-&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><a class="idref" href="util_lemmas.html#op"><span class="id" type="variable">op</span></a><span class="id" type="notation">/</span><a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">i</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">big</span><span class="id" type="notation">[</span><a class="idref" href="util_lemmas.html#op"><span class="id" type="variable">op</span></a><span class="id" type="notation">/</span><a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">]</span><span class="id" type="notation">_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> (<a class="idref" href="util_lemmas.html#fun_ord_to_nat"><span class="id" type="definition">fun_ord_to_nat</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a>) <span class="id" type="var">i</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_bigcat_ord"><span class="id" type="lemma">mem_bigcat_ord</span></a>:<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>) <span class="id" type="var">x</span> <span class="id" type="var">n</span> (<span class="id" type="var">j</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span>) (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">LE</span>: <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>) (<span class="id" type="var">IN</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a><span class="id" type="notation">)</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><span class="id" type="var">i</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <span class="id" type="var">i</span><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_bigcat_ord_exists"><span class="id" type="lemma">mem_bigcat_ord_exists</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>) <span class="id" type="var">x</span> <span class="id" type="var">n</span> (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><span class="id" type="var">i</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <span class="id" type="var">i</span><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">i</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">)</span>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="bigcat_ord_uniq"><span class="id" type="lemma">bigcat_ord_uniq</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>) <span class="id" type="var">n</span> (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <span class="id" type="definition">uniq</span> (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>)) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">x</span> <span class="id" type="var">i1</span> <span class="id" type="var">i2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#i1"><span class="id" type="variable">i1</span></a><span class="id" type="notation">)</span> -&gt; <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#i2"><span class="id" type="variable">i2</span></a><span class="id" type="notation">)</span> -&gt; <a class="idref" href="util_lemmas.html#i1"><span class="id" type="variable">i1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#i2"><span class="id" type="variable">i2</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">uniq</span> (<a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><span class="id" type="var">i</span> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <span class="id" type="var">i</span><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a>).<br/>
-<span class="id" type="keyword">Lemma</span> <a name="addnb"><span class="id" type="lemma">addnb</span></a> (<span class="id" type="var">b1</span> <span class="id" type="var">b2</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) : <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#b1"><span class="id" type="variable">b1</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#b2"><span class="id" type="variable">b2</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#b1"><span class="id" type="variable">b1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'||'_x"><span class="id" type="notation">||</span></a> <a class="idref" href="util_lemmas.html#b2"><span class="id" type="variable">b2</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="strong_ind"><span class="id" type="lemma">strong_ind</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <span class="id" type="keyword">Prop</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> 0 -&gt; (<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span>, (<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>, <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a>) -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span>, <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="strong_ind_lt"><span class="id" type="lemma">strong_ind_lt</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <span class="id" type="keyword">Prop</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span>, (<span class="id" type="keyword">forall</span> <span class="id" type="var">k</span>, <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a>) -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span>, <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="exists_inP_nat"><span class="id" type="lemma">exists_inP_nat</span></a> <span class="id" type="var">t</span> (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>):<br/>
-&nbsp;&nbsp;<span class="id" type="inductive">reflect</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>) <span class="id" type="notation">[</span><span class="id" type="notation">exists</span> <span class="id" type="notation">(</span><span class="id" type="var">x</span> <span class="id" type="notation">|</span> <span class="id" type="var">x</span> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_t</span><span class="id" type="notation">)</span><span class="id" type="notation">,</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">x</span><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="forall_inP_nat"><span class="id" type="lemma">forall_inP_nat</span></a> (<span class="id" type="var">t</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>):<br/>
-&nbsp;&nbsp;<span class="id" type="inductive">reflect</span> ((<span class="id" type="keyword">forall</span> (<span class="id" type="var">x</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) (<span class="id" type="var">LT</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#t"><span class="id" type="variable">t</span></a>), <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>)) <span class="id" type="notation">[</span><span class="id" type="keyword">forall</span> <span class="id" type="notation">(</span><span class="id" type="var">x</span> <span class="id" type="notation">|</span> <span class="id" type="var">x</span> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_t</span><span class="id" type="notation">)</span><span class="id" type="notation">,</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">x</span><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="exists_inPQ_nat"><span class="id" type="lemma">exists_inPQ_nat</span></a> <span class="id" type="var">t</span> (<span class="id" type="var">P</span> <span class="id" type="var">Q</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>):<br/>
-&nbsp;&nbsp;<span class="id" type="inductive">reflect</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#t"><span class="id" type="variable">t</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="util_lemmas.html#Q"><span class="id" type="variable">Q</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>) <span class="id" type="notation">[</span><span class="id" type="notation">exists</span> <span class="id" type="notation">(</span><span class="id" type="var">x</span> <span class="id" type="notation">|</span> <span class="id" type="var">x</span> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">'</span><span class="id" type="notation">I_t</span><span class="id" type="notation">)</span><span class="id" type="notation">,</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="util_lemmas.html#Q"><span class="id" type="variable">Q</span></a> <span class="id" type="var">x</span><span class="id" type="notation">]</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="subh1"><span class="id" type="lemma">subh1</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">p</span> (<span class="id" type="var">GE</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>), <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="subh2"><span class="id" type="lemma">subh2</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">m1</span> <span class="id" type="var">m2</span> <span class="id" type="var">n1</span> <span class="id" type="var">n2</span> (<span class="id" type="var">GE1</span>: <a class="idref" href="util_lemmas.html#m1"><span class="id" type="variable">m1</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#m2"><span class="id" type="variable">m2</span></a>) (<span class="id" type="var">GE2</span>: <a class="idref" href="util_lemmas.html#n1"><span class="id" type="variable">n1</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#n2"><span class="id" type="variable">n2</span></a>),<br/>
-&nbsp;&nbsp;<span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#m1"><span class="id" type="variable">m1</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#n1"><span class="id" type="variable">n1</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#m2"><span class="id" type="variable">m2</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#n2"><span class="id" type="variable">n2</span></a><span class="id" type="notation">)</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#m1"><span class="id" type="variable">m1</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#m2"><span class="id" type="variable">m2</span></a> <span class="id" type="notation">+</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#n1"><span class="id" type="variable">n1</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n2"><span class="id" type="variable">n2</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="subh3"><span class="id" type="lemma">subh3</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">p</span> (<span class="id" type="var">GE1</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>) (<span class="id" type="var">GE</span>: <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="subh4"><span class="id" type="lemma">subh4</span></a>: <span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">p</span> (<span class="id" type="var">LE1</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>) (<span class="id" type="var">LE2</span>: <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">==</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">==</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="ltn_div_trunc"><span class="id" type="lemma">ltn_div_trunc</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">d</span> (<span class="id" type="var">NONZERO</span>: <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">&gt;</span> 0) (<span class="id" type="var">DIV</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a>), <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="addmovr"><span class="id" type="lemma">addmovr</span></a>: <span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">p</span> (<span class="id" type="var">GE</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>), <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="addmovl"><span class="id" type="lemma">addmovl</span></a>: <span class="id" type="keyword">forall</span> <span class="id" type="var">m</span> <span class="id" type="var">n</span> <span class="id" type="var">p</span> (<span class="id" type="var">GE</span>: <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>), <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="subndiv_eq_mod"><span class="id" type="lemma">subndiv_eq_mod</span></a>: <span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> <span class="id" type="var">d</span>, <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">*</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="sum_diff_monotonic"><span class="id" type="lemma">sum_diff_monotonic</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> <span class="id" type="var">G</span> <span class="id" type="var">F</span> (<span class="id" type="var">ALL</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">i</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>, <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> -&gt; <a class="idref" href="util_lemmas.html#G"><span class="id" type="variable">G</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#G"><span class="id" type="variable">G</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span><span class="id" type="notation">)</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">(</span><span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="sum_diff"><span class="id" type="lemma">sum_diff</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> <span class="id" type="var">F</span> <span class="id" type="var">G</span> (<span class="id" type="var">ALL</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">i</span> (<span class="id" type="var">LT</span>: <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>), <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#G"><span class="id" type="variable">G</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#G"><span class="id" type="variable">G</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span><span class="id" type="notation">)</span> <span class="id" type="notation">-</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#G"><span class="id" type="variable">G</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="prev_le_next"><span class="id" type="lemma">prev_le_next</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="keyword">Type</span>) (<span class="id" type="var">F</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>-&gt;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) <span class="id" type="var">r</span> (<span class="id" type="var">x0</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" type="var">ALL</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">).-1</span> -&gt; <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">.+1</span>))<br/>
-&nbsp;&nbsp;<span class="id" type="var">i</span> <span class="id" type="var">k</span> (<span class="id" type="var">LT</span>: <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">+</span> <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">).-1</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> (<a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">+</span><a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a>)).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="telescoping_sum"><span class="id" type="lemma">telescoping_sum</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span>: <span class="id" type="keyword">Type</span>) (<span class="id" type="var">F</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>-&gt;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) <span class="id" type="var">r</span> (<span class="id" type="var">x0</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;(<span class="id" type="var">ALL</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">).-1</span> -&gt; <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">.+1</span>)), <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">).-1</span>) <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> 0) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">).-1</span><span class="id" type="notation">)</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> (<span class="id" type="var">i</span><span class="id" type="notation">.+1</span>)) <span class="id" type="notation">-</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="var">i</span>)<span class="id" type="notation">)</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="make_sequence"><span class="id" type="definition">make_sequence</span></a> {<span class="id" type="var">T</span>: <span class="id" type="keyword">Type</span>} (<span class="id" type="var">opt</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#option"><span class="id" type="inductive">option</span></a> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">match</span> <a class="idref" href="util_lemmas.html#opt"><span class="id" type="variable">opt</span></a> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">j</span> =&gt; <span class="id" type="notation">[::</span> <span class="id" type="var">j</span><span class="id" type="notation">]</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a> =&gt; <span class="id" type="notation">[::]</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="ltSnm"><span class="id" type="lemma">ltSnm</span></a> : <span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> <span class="id" type="var">m</span>, <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> -&gt; <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="iter_fix"><span class="id" type="lemma">iter_fix</span></a> <span class="id" type="var">T</span> (<span class="id" type="var">F</span> : <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) <span class="id" type="var">x</span> <span class="id" type="var">k</span> <span class="id" type="var">n</span> :<br/>
-&nbsp;&nbsp;<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a><span class="id" type="notation">.+1</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> -&gt; <a class="idref" href="util_lemmas.html#k"><span class="id" type="variable">k</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> -&gt; <span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="leq_as_delta"><span class="id" type="lemma">leq_as_delta</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">x1</span> (<span class="id" type="var">P</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <span class="id" type="keyword">Prop</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">(</span></a><span class="id" type="keyword">forall</span> <span class="id" type="var">x2</span>, <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">(</span></a><span class="id" type="keyword">forall</span> <span class="id" type="keyword">delta</span>, <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> (<a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>)<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">)</span></a>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="fun_mon_iter_mon"><span class="id" type="lemma">fun_mon_iter_mon</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">f</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) <span class="id" type="var">x0</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span> (<span class="id" type="var">LE</span>: <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">MIN</span>: <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">MON</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span>, <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="fun_mon_iter_mon_helper"><span class="id" type="lemma">fun_mon_iter_mon_helper</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">T</span> (<span class="id" type="var">f</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">le</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">REFL</span>: <span class="id" type="definition">reflexive</span> <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a>) (<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">x0</span> <span class="id" type="var">x1</span> (<span class="id" type="var">MIN</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">x2</span>, <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>))<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">MON</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span>, <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> -&gt; <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a>) (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a>)),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>) (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a><span class="id" type="notation">.+1</span> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="fun_mon_iter_mon_generic"><span class="id" type="lemma">fun_mon_iter_mon_generic</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">T</span> (<span class="id" type="var">f</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">le</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">REFL</span>: <span class="id" type="definition">reflexive</span> <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a>) (<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">x0</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span> (<span class="id" type="var">LE</span>: <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">MON</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">x1</span> <span class="id" type="var">x2</span>, <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> -&gt; <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> -&gt; <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a>) (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a>))<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">MIN</span>: <span class="id" type="keyword">forall</span> <span class="id" type="var">x2</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>, <a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>)),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#le"><span class="id" type="variable">le</span></a> (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>) (<span class="id" type="definition">iter</span> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> <a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="divSn_cases"><span class="id" type="lemma">divSn_cases</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">n</span> <span class="id" type="var">d</span> (<span class="id" type="var">GT1</span>: <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">&gt;</span> 1),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">%/</span><a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%%</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">+</span> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">%%</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a> <span class="id" type="notation">+</span> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">%/</span> <a class="idref" href="util_lemmas.html#d"><span class="id" type="variable">d</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">)</span></a>.<br/>
-&nbsp;Case&nbsp;1:&nbsp;y&nbsp;=&nbsp;d&nbsp;-&nbsp;1*)</span><br/>
-&nbsp;Case&nbsp;2:&nbsp;y&nbsp;&lt;&nbsp;d&nbsp;-&nbsp;1&nbsp;*)</span><br/>
-<span class="id" type="keyword">Definition</span> <a name="total_over_seq"><span class="id" type="definition">total_over_seq</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> (<span class="id" type="var">INx</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) (<span class="id" type="var">INy</span>: <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'\/'_x"><span class="id" type="notation">\/</span></a> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="antisymmetric_over_seq"><span class="id" type="definition">antisymmetric_over_seq</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> (<span class="id" type="var">INx</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) (<span class="id" type="var">INy</span>: <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">LEx</span>: <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a>) (<span class="id" type="var">LEy</span>: <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="before_ij_implies_leq_ij"><span class="id" type="lemma">before_ij_implies_leq_ij</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">SORT</span>: <span class="id" type="definition">sorted</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) (<span class="id" type="var">REFL</span>: <span class="id" type="definition">reflexive</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">i</span> <span class="id" type="var">j</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a><span class="id" type="notation">)</span>) (<span class="id" type="var">LE</span>: <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> (<span class="id" type="definition">tnth</span> (<span class="id" type="definition">in_tuple</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) (<span class="id" type="definition">tnth</span> (<span class="id" type="definition">in_tuple</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a>).<br/>
-<span class="id" type="keyword">Lemma</span> <a name="leq_ij_implies_before_ij"><span class="id" type="lemma">leq_ij_implies_before_ij</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">SORT</span>: <span class="id" type="definition">sorted</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">REFL</span>: <span class="id" type="definition">reflexive</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">ANTI</span>: <a class="idref" href="util_lemmas.html#antisymmetric_over_seq"><span class="id" type="definition">antisymmetric_over_seq</span></a> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">i</span> <span class="id" type="var">j</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a><span class="id" type="notation">)</span>) (<span class="id" type="var">UNIQ</span>: <span class="id" type="definition">uniq</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">REL</span>: <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> (<span class="id" type="definition">tnth</span> (<span class="id" type="definition">in_tuple</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) (<span class="id" type="definition">tnth</span> (<span class="id" type="definition">in_tuple</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>) <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a>)),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="ext_tuple_to_fun_index"><span class="id" type="definition">ext_tuple_to_fun_index</span></a> {<span class="id" type="var">T</span>} {<span class="id" type="var">ts</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>} {<span class="id" type="var">idx</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">)</span>} (<span class="id" type="var">hp</span>: <a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">.-</span><span class="id" type="notation">tuple</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) : <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">)</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-<span class="id" type="keyword">Defined</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="extend_ord"><span class="id" type="definition">extend_ord</span></a> {<span class="id" type="var">max</span>} (<span class="id" type="var">y</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_max</span>) (<span class="id" type="var">x</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_y</span>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="constructor">Ordinal</span> (<span class="id" type="lemma">ltn_trans</span> (<span class="id" type="lemma">ltn_ord</span> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>) (<span class="id" type="lemma">ltn_ord</span> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a>)).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="eq_ext_tuple_to_fun_index"><span class="id" type="lemma">eq_ext_tuple_to_fun_index</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="keyword">Type</span>} {<span class="id" type="var">ts</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>} {<span class="id" type="var">idx</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_</span><span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#ts"><span class="id" type="variable">ts</span></a><span class="id" type="notation">)</span>} (<span class="id" type="var">tp</span>: <a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a><span class="id" type="notation">.-</span><span class="id" type="notation">tuple</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) (<span class="id" type="var">x</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_idx</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="util_lemmas.html#ext_tuple_to_fun_index"><span class="id" type="definition">ext_tuple_to_fun_index</span></a> <a class="idref" href="util_lemmas.html#tp"><span class="id" type="variable">tp</span></a>) (<a class="idref" href="util_lemmas.html#extend_ord"><span class="id" type="definition">extend_ord</span></a> <a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">tnth</span> <a class="idref" href="util_lemmas.html#tp"><span class="id" type="variable">tp</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-<span class="id" type="keyword">Definition</span> <a name="comp_relation"><span class="id" type="definition">comp_relation</span></a> {<span class="id" type="var">T</span>} (<span class="id" type="var">R</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) : <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a> :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> =&gt; <span class="id" type="notation">~~</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="reverse_sorted"><span class="id" type="definition">reverse_sorted</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">R</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="definition">sorted</span> (<a class="idref" href="util_lemmas.html#comp_relation"><span class="id" type="definition">comp_relation</span></a> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>) <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="revert_comp_relation"><span class="id" type="lemma">revert_comp_relation</span></a>:<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">R</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">ANTI</span>: <span class="id" type="definition">antisymmetric</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TOTAL</span>: <span class="id" type="definition">total</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="var">x</span> <span class="id" type="var">y</span> (<span class="id" type="var">DIFF</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">!=</span> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">~~</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="comp_relation_trans"><span class="id" type="lemma">comp_relation_trans</span></a>:<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">R</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">ANTI</span>: <span class="id" type="definition">antisymmetric</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TOTAL</span>: <span class="id" type="definition">total</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">transitive</span> (<a class="idref" href="util_lemmas.html#comp_relation"><span class="id" type="definition">comp_relation</span></a> <a class="idref" href="util_lemmas.html#R"><span class="id" type="variable">R</span></a>).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="sorted_rcons_prefix"><span class="id" type="lemma">sorted_rcons_prefix</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) <span class="id" type="var">s</span> <span class="id" type="var">x</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">SORT</span>: <span class="id" type="definition">sorted</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>)),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">sorted</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="order_sorted_rcons"><span class="id" type="lemma">order_sorted_rcons</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">leT</span>: <span class="id" type="definition">rel</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">s</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">x</span> <span class="id" type="var">last</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">TRANS</span>: <span class="id" type="definition">transitive</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a>) (<span class="id" type="var">SORT</span>: <span class="id" type="definition">sorted</span> <a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> (<span class="id" type="definition">rcons</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a> <a class="idref" href="util_lemmas.html#last"><span class="id" type="variable">last</span></a>))<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">IN</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#s"><span class="id" type="variable">s</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#leT"><span class="id" type="variable">leT</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#last"><span class="id" type="variable">last</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="exists_unzip2"><span class="id" type="lemma">exists_unzip2</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> {<span class="id" type="var">T1</span> <span class="id" type="var">T2</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">l</span>: <span class="id" type="abbreviation">seq</span> (<a class="idref" href="util_lemmas.html#T1"><span class="id" type="variable">T1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:type_scope:x_'*'_x"><span class="id" type="notation">*</span></a> <a class="idref" href="util_lemmas.html#T2"><span class="id" type="variable">T2</span></a>)) <span class="id" type="var">x</span> (<span class="id" type="var">IN</span>: <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><span class="id" type="definition">unzip1</span> <a class="idref" href="util_lemmas.html#l"><span class="id" type="variable">l</span></a><span class="id" type="notation">)</span>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">y</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#l"><span class="id" type="variable">l</span></a>.<br/>
-<span class="comment">(*&nbsp;Based&nbsp;on&nbsp;https://www.ps.uni-saarland.de/formalizations/fset/html/libs.fset.html&nbsp;*)</span><br/>
-<span class="id" type="keyword">Definition</span> <a name="powerset"><span class="id" type="definition">powerset</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">l</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) : <span class="id" type="abbreviation">seq</span> (<span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">mT</span> := (<span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#l"><span class="id" type="variable">l</span></a><span class="id" type="notation">).-</span><span class="id" type="notation">tuple</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="definition">map</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">m</span> : <a class="idref" href="util_lemmas.html#mT"><span class="id" type="variable">mT</span></a> =&gt; (<span class="id" type="definition">mask</span> <a class="idref" href="util_lemmas.html#m"><span class="id" type="variable">m</span></a> <a class="idref" href="util_lemmas.html#l"><span class="id" type="variable">l</span></a>)) (<span class="id" type="abbreviation">enum</span> <span class="id" type="notation">{:</span> <a class="idref" href="util_lemmas.html#mT"><span class="id" type="variable">mT</span></a><span class="id" type="notation">}</span>)).<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_powerset"><span class="id" type="lemma">mem_powerset</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">x</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) <span class="id" type="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#powerset"><span class="id" type="definition">powerset</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a><span class="id" type="notation">)</span> -&gt; <span class="id" type="notation">{</span><span class="id" type="notation">subset</span> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a><span class="id" type="notation">}</span>.<br/>
-
-<br/>
-<span class="comment">(*Lemma&nbsp;in_powerset&nbsp;{T:&nbsp;eqType}&nbsp;(x:&nbsp;seq&nbsp;T)&nbsp;y&nbsp;:<br/>
-&nbsp;&nbsp;y&nbsp;\in&nbsp;(powerset&nbsp;x)&nbsp;-&gt;&nbsp;{subset&nbsp;y&nbsp;&lt;=&nbsp;x}.<br/>
-Proof.<br/>
-&nbsp;&nbsp;intros&nbsp;POW;&nbsp;red;&nbsp;intros&nbsp;z&nbsp;IN;&nbsp;unfold&nbsp;powerset&nbsp;in&nbsp;POW.<br/>
-&nbsp;&nbsp;move:&nbsp;POW&nbsp;=&gt;&nbsp;/mapP&nbsp;POW;&nbsp;destruct&nbsp;POW&nbsp;as&nbsp;<span class="inlinecode"><span class="id" type="var">pair</span></span> <span class="inlinecode"><span class="id" type="var">POW</span></span> <span class="inlinecode"><span class="id" type="var">EQ</span></span>;&nbsp;subst.<br/>
-&nbsp;&nbsp;by&nbsp;apply&nbsp;mem_mask&nbsp;with&nbsp;(m&nbsp;:=&nbsp;pair).<br/>
-Qed.*)</span><br/>
-
-<br/>
-<span class="comment">(*&nbsp;Based&nbsp;on&nbsp;http://www.ps.uni-saarland.de/~doczkal/cpp11/html/base.html&nbsp;*)</span><br/>
-<span class="id" type="keyword">Lemma</span> <a name="ex2E"><span class="id" type="lemma">ex2E</span></a> <span class="id" type="var">X</span> (<span class="id" type="var">p</span> <span class="id" type="var">q</span> : <span class="id" type="definition">pred</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a>) : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">(</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">exists2</span></a> <span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <span class="id" type="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists2'_x_','_x_'&'_x"><span class="id" type="notation">&amp;</span></a> <a class="idref" href="util_lemmas.html#q"><span class="id" type="variable">q</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'<->'_x"><span class="id" type="notation">&lt;-&gt;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">x</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="util_lemmas.html#q"><span class="id" type="variable">q</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_zip"><span class="id" type="lemma">mem_zip</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">X</span> <span class="id" type="var">Y</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) <span class="id" type="var">x</span> <span class="id" type="var">y</span> :<br/>
-&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="definition">zip</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="zipP"><span class="id" type="lemma">zipP</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">P</span>: <span class="id" type="var">_</span> -&gt; <span class="id" type="var">_</span> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#bool"><span class="id" type="inductive">bool</span></a>) (<span class="id" type="var">X</span> <span class="id" type="var">Y</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) <span class="id" type="var">x0</span>:<br/>
-&nbsp;&nbsp;<span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a> -&gt;<br/>
-&nbsp;&nbsp;<span class="id" type="inductive">reflect</span> (<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="definition">size</span> (<span class="id" type="definition">zip</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a>) -&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) (<span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#x0"><span class="id" type="variable">x0</span></a> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>))<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="definition">all</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">p</span> =&gt; <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#fst"><span class="id" type="definition">fst</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a>) (<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#snd"><span class="id" type="definition">snd</span></a> <a class="idref" href="util_lemmas.html#p"><span class="id" type="variable">p</span></a>)) (<span class="id" type="definition">zip</span> <a class="idref" href="util_lemmas.html#X"><span class="id" type="variable">X</span></a> <a class="idref" href="util_lemmas.html#Y"><span class="id" type="variable">Y</span></a>)).<br/>
-<span class="id" type="keyword">Lemma</span> <a name="mem_zip_exists"><span class="id" type="lemma">mem_zip_exists</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">T</span> <span class="id" type="var">T'</span>: <span class="id" type="abbreviation">eqType</span>) (<span class="id" type="var">x1</span>: <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) (<span class="id" type="var">x2</span>: <a class="idref" href="util_lemmas.html#T'"><span class="id" type="variable">T'</span></a>) <span class="id" type="var">l1</span> <span class="id" type="var">l2</span> <span class="id" type="var">elem</span> <span class="id" type="var">elem'</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#l2"><span class="id" type="variable">l2</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">,</span></a> <a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:core_scope:'('_x_','_x_','_'..'_','_x_')'"><span class="id" type="notation">)</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <span class="id" type="definition">zip</span> <a class="idref" href="util_lemmas.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="util_lemmas.html#l2"><span class="id" type="variable">l2</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">exists</span></a> <span class="id" type="var">idx</span><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:'exists'_x_'..'_x_','_x"><span class="id" type="notation">,</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="definition">size</span> <a class="idref" href="util_lemmas.html#l2"><span class="id" type="variable">l2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x1"><span class="id" type="variable">x1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="util_lemmas.html#l1"><span class="id" type="variable">l1</span></a> <a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#x2"><span class="id" type="variable">x2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <span class="id" type="definition">nth</span> <a class="idref" href="util_lemmas.html#elem'"><span class="id" type="variable">elem'</span></a> <a class="idref" href="util_lemmas.html#l2"><span class="id" type="variable">l2</span></a> <a class="idref" href="util_lemmas.html#idx"><span class="id" type="variable">idx</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Definition</span> <a name="no_intersection"><span class="id" type="definition">no_intersection</span></a> {<span class="id" type="var">T</span>: <span class="id" type="abbreviation">eqType</span>} (<span class="id" type="var">l1</span> <span class="id" type="var">l2</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :=<br/>
-&nbsp;&nbsp;<span class="id" type="notation">~~</span> <span class="id" type="definition">has</span> (<span class="id" type="definition">mem</span> <a class="idref" href="util_lemmas.html#l1"><span class="id" type="variable">l1</span></a>) <a class="idref" href="util_lemmas.html#l2"><span class="id" type="variable">l2</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="leq_big_max"><span class="id" type="lemma">leq_big_max</span></a> <span class="id" type="var">I</span> <span class="id" type="var">r</span> (<span class="id" type="var">P</span> : <span class="id" type="definition">pred</span> <a class="idref" href="util_lemmas.html#I"><span class="id" type="variable">I</span></a>) (<span class="id" type="var">E1</span> <span class="id" type="var">E2</span> : <a class="idref" href="util_lemmas.html#I"><span class="id" type="variable">I</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) :<br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span>, <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> -&gt; <a class="idref" href="util_lemmas.html#E1"><span class="id" type="variable">E1</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#E2"><span class="id" type="variable">E2</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a>) -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">max_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#E1"><span class="id" type="variable">E1</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">\</span><span class="id" type="notation">max_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <span class="id" type="notation">|</span> <a class="idref" href="util_lemmas.html#P"><span class="id" type="variable">P</span></a> <span class="id" type="var">i</span><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#E2"><span class="id" type="variable">E2</span></a> <span class="id" type="var">i</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Variable</span> <a name="l"><span class="id" type="variable">l</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#list"><span class="id" type="inductive">list</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="sum_nat_eq0_nat"><span class="id" type="lemma">sum_nat_eq0_nat</span></a> (<span class="id" type="var">T</span> : <span class="id" type="abbreviation">eqType</span>) (<span class="id" type="var">F</span> : <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>) (<span class="id" type="var">r</span>: <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :<br/>
-&nbsp;&nbsp;<span class="id" type="definition">all</span> (<span class="id" type="keyword">fun</span> <span class="id" type="var">x</span> =&gt; <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">==</span> 0) <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="util_lemmas.html#r"><span class="id" type="variable">r</span></a><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">==</span> 0<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="min_lt_same"><span class="id" type="lemma">min_lt_same</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">x</span> <span class="id" type="var">y</span> <span class="id" type="var">z</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <a class="idref" href="util_lemmas.html#z"><span class="id" type="variable">z</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="definition">minn</span> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a> <a class="idref" href="util_lemmas.html#z"><span class="id" type="variable">z</span></a> -&gt; <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#y"><span class="id" type="variable">y</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">Lemma</span> <a name="size_bigcat_ord"><span class="id" type="lemma">size_bigcat_ord</span></a> {<span class="id" type="var">T</span>} <span class="id" type="var">n</span> (<span class="id" type="var">i</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span>) (<span class="id" type="var">f</span>: <span class="id" type="notation">'</span><span class="id" type="notation">I_n</span> -&gt; <span class="id" type="abbreviation">seq</span> <a class="idref" href="util_lemmas.html#T"><span class="id" type="variable">T</span></a>) :<br/>
-&nbsp;&nbsp;(<span class="id" type="keyword">forall</span> <span class="id" type="var">x</span>, <span class="id" type="definition">size</span> (<a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#x"><span class="id" type="variable">x</span></a>) <span class="id" type="notation">&lt;=</span> 1) -&gt;<br/>
-&nbsp;&nbsp;<span class="id" type="definition">size</span> (<a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">\</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">cat_</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">&lt;</span></a> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">(</span></a><a class="idref" href="util_lemmas.html#f"><span class="id" type="variable">f</span></a> <a class="idref" href="util_lemmas.html#i"><span class="id" type="variable">i</span></a><a class="idref" href="util_lemmas.html#:nat_scope:'\cat_'_'('_x_'<'_x_')'_x"><span class="id" type="notation">)</span></a>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#n"><span class="id" type="variable">n</span></a>.<br/>
-<span class="id" type="keyword">Lemma</span> <a name="extend_sum"><span class="id" type="lemma">extend_sum</span></a> :<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span> <span class="id" type="var">t1'</span> <span class="id" type="var">t2'</span> <span class="id" type="var">F</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#t1'"><span class="id" type="variable">t1'</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#t1"><span class="id" type="variable">t1</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_lemmas.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="util_lemmas.html#t2'"><span class="id" type="variable">t2'</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;=</span> <span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="util_lemmas.html#t1'"><span class="id" type="variable">t1'</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="util_lemmas.html#t2'"><span class="id" type="variable">t2'</span></a><span class="id" type="notation">)</span> <a class="idref" href="util_lemmas.html#F"><span class="id" type="variable">F</span></a> <span class="id" type="var">t</span>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/workload.html b/workload.html
deleted file mode 100644
index ded6280da..000000000
--- a/workload.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>workload</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library workload</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">div</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">path</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="Workload"><span class="id" type="module">Workload</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">Schedule</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">ResponseTime</span> <span class="id" type="var">Schedulability</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;define&nbsp;the&nbsp;workload.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="Workload.WorkloadDef"><span class="id" type="section">WorkloadDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Workload.WorkloadDef.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="workload.html#Workload.WorkloadDef.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="workload.html#Workload.WorkloadDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">arr_seq</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.Job"><span class="id" type="variable">Job</span></a>}.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Workload.WorkloadDef.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;some&nbsp;task&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="Workload.WorkloadDef.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="workload.html#Workload.WorkloadDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;define&nbsp;a&nbsp;function&nbsp;that&nbsp;returns&nbsp;the&nbsp;amount&nbsp;of&nbsp;service<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;received&nbsp;by&nbsp;this&nbsp;task&nbsp;in&nbsp;a&nbsp;particular&nbsp;processor.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Workload.service_of_task"><span class="id" type="definition">service_of_task</span></a> (<span class="id" type="var">cpu</span>: <a class="idref" href="schedule.html#Schedule.processor"><span class="id" type="definition">processor</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.num_cpus"><span class="id" type="variable">num_cpus</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="id" type="var">j</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#option"><span class="id" type="inductive">option</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.arr_seq"><span class="id" type="variable">arr_seq</span></a>)) : <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">match</span> <a class="idref" href="workload.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="keyword">with</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#Some"><span class="id" type="constructor">Some</span></a> <span class="id" type="var">j'</span> =&gt; (<a class="idref" href="workload.html#Workload.WorkloadDef.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j'</span> <span class="id" type="notation">==</span> <a class="idref" href="workload.html#Workload.WorkloadDef.tsk"><span class="id" type="variable">tsk</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#None"><span class="id" type="constructor">None</span></a> =&gt; 0<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">end</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;workload&nbsp;is&nbsp;defined&nbsp;as&nbsp;the&nbsp;service&nbsp;received&nbsp;by&nbsp;jobs&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;task&nbsp;in&nbsp;the&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,<span class="id" type="var">t2</span>).</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Workload.workload"><span class="id" type="definition">workload</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><a class="idref" href="workload.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <span class="id" type="var">t</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload.html#t2"><span class="id" type="variable">t2</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">cpu</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload.html#Workload.WorkloadDef.num_cpus"><span class="id" type="variable">num_cpus</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#Workload.service_of_task"><span class="id" type="definition">service_of_task</span></a> <span class="id" type="var">cpu</span> (<a class="idref" href="workload.html#Workload.WorkloadDef.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">cpu</span> <span class="id" type="var">t</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;we&nbsp;define&nbsp;workload&nbsp;by&nbsp;summing&nbsp;up&nbsp;the&nbsp;cumulative&nbsp;service<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;during&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,<span class="id" type="var">t2</span>)</span> <span class="inlinecode"><span class="id" type="var">of</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">scheduled</span></span> <span class="inlinecode"><span class="id" type="var">jobs</span>,</span> <span class="inlinecode"><span class="id" type="var">but</span></span> <span class="inlinecode"><span class="id" type="var">only</span></span> <span class="inlinecode"><span class="id" type="var">those</span></span> <span class="inlinecode"><span class="id" type="var">spawned</span></span>
-       <span class="inlinecode"><span class="id" type="tactic">by</span></span> <span class="inlinecode"><span class="id" type="var">the</span></span> <span class="inlinecode"><span class="id" type="var">task</span></span> <span class="inlinecode"><span class="id" type="var">that</span></span> <span class="inlinecode"><span class="id" type="var">we</span></span> <span class="inlinecode"><span class="id" type="var">care</span></span> <span class="inlinecode"><span class="id" type="var">about</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="Workload.workload_joblist"><span class="id" type="definition">workload_joblist</span></a> (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">j</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload.html#t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">|</span> <a class="idref" href="workload.html#Workload.WorkloadDef.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">j</span> <span class="id" type="notation">==</span> <a class="idref" href="workload.html#Workload.WorkloadDef.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload.html#Workload.WorkloadDef.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">j</span> <a class="idref" href="workload.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;two&nbsp;definitions&nbsp;are&nbsp;equivalent.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="Workload.workload_eq_workload_joblist"><span class="id" type="lemma">workload_eq_workload_joblist</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#Workload.workload"><span class="id" type="definition">workload</span></a> <a class="idref" href="workload.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload.html#t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload.html#Workload.workload_joblist"><span class="id" type="definition">workload_joblist</span></a> <a class="idref" href="workload.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload.html#Workload.WorkloadDef"><span class="id" type="section">WorkloadDef</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="workload.html#"><span class="id" type="module">Workload</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/workload_bound.html b/workload_bound.html
deleted file mode 100644
index 6c101d201..000000000
--- a/workload_bound.html
+++ /dev/null
@@ -1,442 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
-<title>workload_bound</title>
-</head>
-
-<body>
-
-<div id="page">
-
-<div id="header">
-</div>
-
-<div id="main">
-
-<h1 class="libtitle">Library workload_bound</h1>
-
-<div class="code">
-<span class="id" type="keyword">Require</span> <span class="id" type="keyword">Import</span> <a class="idref" href="workload.html#"><span class="id" type="library">workload</span></a> <a class="idref" href="Vbase.html#"><span class="id" type="library">Vbase</span></a> <a class="idref" href="job.html#"><span class="id" type="library">job</span></a> <a class="idref" href="task.html#"><span class="id" type="library">task</span></a> <a class="idref" href="schedule.html#"><span class="id" type="library">schedule</span></a> <a class="idref" href="task_arrival.html#"><span class="id" type="library">task_arrival</span></a> <a class="idref" href="response_time.html#"><span class="id" type="library">response_time</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#"><span class="id" type="library">schedulability</span></a> <a class="idref" href="util_divround.html#"><span class="id" type="library">util_divround</span></a> <a class="idref" href="util_lemmas.html#"><span class="id" type="library">util_lemmas</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="library">ssreflect</span> <span class="id" type="library">ssrbool</span> <span class="id" type="library">eqtype</span> <span class="id" type="library">ssrnat</span> <span class="id" type="library">seq</span> <span class="id" type="library">div</span> <span class="id" type="library">fintype</span> <span class="id" type="library">bigop</span> <span class="id" type="library">path</span>.<br/>
-
-<br/>
-<span class="id" type="keyword">Module</span> <a name="WorkloadBound"><span class="id" type="module">WorkloadBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Import</span> <span class="id" type="var">Job</span> <span class="id" type="var">SporadicTaskset</span> <span class="id" type="var">ScheduleOfSporadicTask</span> <span class="id" type="var">SporadicTaskArrival</span> <span class="id" type="var">ResponseTime</span> <span class="id" type="var">Schedulability</span> <span class="id" type="var">Workload</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.WorkloadBoundDef"><span class="id" type="section">WorkloadBoundDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.WorkloadBoundDef.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.WorkloadBoundDef.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.WorkloadBoundDef.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.WorkloadBoundDef.R_tsk"><span class="id" type="variable">R_tsk</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>. <span class="comment">(*&nbsp;Known&nbsp;response-time&nbsp;bound&nbsp;for&nbsp;the&nbsp;task&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>. <span class="comment">(*&nbsp;Length&nbsp;of&nbsp;the&nbsp;interval&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Bound&nbsp;on&nbsp;the&nbsp;number&nbsp;of&nbsp;jobs&nbsp;that&nbsp;execute&nbsp;completely&nbsp;in&nbsp;the&nbsp;interval&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="WorkloadBound.max_jobs"><span class="id" type="definition">max_jobs</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="util_divround.html#div_floor"><span class="id" type="definition">div_floor</span></a> (<span class="id" type="keyword">delta</span> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">-</span> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk"><span class="id" type="variable">tsk</span></a>) (<a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk"><span class="id" type="variable">tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;bound&nbsp;on&nbsp;the&nbsp;workload&nbsp;of&nbsp;a&nbsp;task&nbsp;in&nbsp;an&nbsp;interval&nbsp;of&nbsp;length&nbsp;delta&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Definition</span> <a name="WorkloadBound.W"><span class="id" type="definition">W</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">e_k</span> := (<a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk"><span class="id" type="variable">tsk</span></a>) <span class="id" type="keyword">in</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">let</span> <span class="id" type="var">p_k</span> := (<a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.tsk"><span class="id" type="variable">tsk</span></a>) <span class="id" type="keyword">in</span>            <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">minn</span> <a class="idref" href="workload_bound.html#e_k"><span class="id" type="variable">e_k</span></a> (<span class="id" type="keyword">delta</span> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">-</span> <a class="idref" href="workload_bound.html#e_k"><span class="id" type="variable">e_k</span></a> <span class="id" type="notation">-</span> <a class="idref" href="workload_bound.html#WorkloadBound.max_jobs"><span class="id" type="definition">max_jobs</span></a> <span class="id" type="notation">*</span> <a class="idref" href="workload_bound.html#p_k"><span class="id" type="variable">p_k</span></a>) <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.max_jobs"><span class="id" type="definition">max_jobs</span></a> <span class="id" type="notation">*</span> <a class="idref" href="workload_bound.html#e_k"><span class="id" type="variable">e_k</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.WorkloadBoundDef"><span class="id" type="section">WorkloadBoundDef</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.BasicLemmas.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;tsk&nbsp;be&nbsp;any&nbsp;task...*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;...with&nbsp;period&nbsp;&gt;&nbsp;0.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.BasicLemmas.H_period_positive"><span class="id" type="variable">H_period_positive</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let&nbsp;R1&nbsp;&lt;=&nbsp;R2&nbsp;be&nbsp;two&nbsp;response-time&nbsp;bounds&nbsp;that<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;larger&nbsp;than&nbsp;the&nbsp;cost&nbsp;of&nbsp;the&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.BasicLemmas.R1"><span class="id" type="variable">R1</span></a> <a name="WorkloadBound.BasicLemmas.R2"><span class="id" type="variable">R2</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.BasicLemmas.H_R_lower_bound"><span class="id" type="variable">H_R_lower_bound</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.R1"><span class="id" type="variable">R1</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.BasicLemmas.H_R1_le_R2"><span class="id" type="variable">H_R1_le_R2</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.R1"><span class="id" type="variable">R1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.R2"><span class="id" type="variable">R2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.BasicLemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> := <a class="idref" href="workload_bound.html#WorkloadBound.W"><span class="id" type="definition">W</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;Bertogna&nbsp;and&nbsp;Cirinei's&nbsp;workload&nbsp;bound&nbsp;is&nbsp;monotonically&nbsp;increasing.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.W_monotonic"><span class="id" type="lemma">W_monotonic</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">t1</span> <span class="id" type="var">t2</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#t2"><span class="id" type="variable">t2</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.R1"><span class="id" type="variable">R1</span></a> <a class="idref" href="workload_bound.html#t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.workload_bound"><span class="id" type="variable">workload_bound</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas.R2"><span class="id" type="variable">R2</span></a> <a class="idref" href="workload_bound.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Prove&nbsp;special&nbsp;case&nbsp;for&nbsp;p&nbsp;&lt;=&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;Harder&nbsp;case:&nbsp;p&nbsp;&gt;&nbsp;1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.BasicLemmas"><span class="id" type="section">BasicLemmas</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound"><span class="id" type="section">ProofWorkloadBound</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">sporadic_task</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.task_deadline"><span class="id" type="variable">task_deadline</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">Job</span>: <span class="id" type="abbreviation">eqType</span>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.job_cost"><span class="id" type="variable">job_cost</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.job_deadline"><span class="id" type="variable">job_deadline</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.Job"><span class="id" type="variable">Job</span></a> -&gt; <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.arrival_sequence"><span class="id" type="definition">arrival_sequence</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.Job"><span class="id" type="variable">Job</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;all&nbsp;jobs&nbsp;have&nbsp;valid&nbsp;parameters&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_jobs_have_valid_parameters"><span class="id" type="variable">H_jobs_have_valid_parameters</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="job.html#Job.valid_sporadic_job"><span class="id" type="definition">valid_sporadic_job</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;any&nbsp;schedule.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Context</span> {<span class="id" type="var">num_cpus</span>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>}.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a>: <a class="idref" href="schedule.html#Schedule.schedule"><span class="id" type="definition">schedule</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.num_cpus"><span class="id" type="variable">num_cpus</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumption:&nbsp;jobs&nbsp;only&nbsp;execute&nbsp;if&nbsp;they&nbsp;arrived.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;used&nbsp;to&nbsp;eliminate&nbsp;jobs&nbsp;that&nbsp;arrive&nbsp;after&nbsp;end&nbsp;of&nbsp;the&nbsp;interval&nbsp;t1&nbsp;+&nbsp;delta.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_jobs_must_arrive_to_execute"><span class="id" type="variable">H_jobs_must_arrive_to_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_must_arrive_to_execute"><span class="id" type="definition">jobs_must_arrive_to_execute</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumption:&nbsp;jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;after&nbsp;they&nbsp;completed.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;used&nbsp;to&nbsp;eliminate&nbsp;jobs&nbsp;that&nbsp;complete&nbsp;before&nbsp;the&nbsp;start&nbsp;of&nbsp;the&nbsp;interval&nbsp;t1.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_completed_jobs_dont_execute"><span class="id" type="variable">H_completed_jobs_dont_execute</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.completed_jobs_dont_execute"><span class="id" type="definition">completed_jobs_dont_execute</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumptiom:&nbsp;Jobs&nbsp;do&nbsp;not&nbsp;execute&nbsp;in&nbsp;parallel.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;required&nbsp;to&nbsp;use&nbsp;interval&nbsp;lengths&nbsp;as&nbsp;a&nbsp;measure&nbsp;of&nbsp;service.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_no_parallelism"><span class="id" type="variable">H_no_parallelism</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.jobs_dont_execute_in_parallel"><span class="id" type="definition">jobs_dont_execute_in_parallel</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumption:&nbsp;sporadic&nbsp;task&nbsp;model.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;necessary&nbsp;to&nbsp;conclude&nbsp;that&nbsp;consecutive&nbsp;jobs&nbsp;ordered&nbsp;by&nbsp;arrival&nbsp;times<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;separated&nbsp;by&nbsp;at&nbsp;least&nbsp;'period'&nbsp;times&nbsp;units.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_sporadic_tasks"><span class="id" type="variable">H_sporadic_tasks</span></a>: <a class="idref" href="task_arrival.html#SporadicTaskArrival.sporadic_task_model"><span class="id" type="definition">sporadic_task_model</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Before&nbsp;starting&nbsp;the&nbsp;proof,&nbsp;let's&nbsp;give&nbsp;simpler&nbsp;names&nbsp;to&nbsp;the&nbsp;definitions.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> := <a class="idref" href="schedule.html#Schedule.completed"><span class="id" type="definition">completed</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.no_deadline_misses_by"><span class="id" type="variable">no_deadline_misses_by</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">t</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedulability.html#Schedulability.task_misses_no_deadline_before"><span class="id" type="definition">task_misses_no_deadline_before</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_cost"><span class="id" type="variable">job_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_deadline"><span class="id" type="variable">job_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="workload_bound.html#t"><span class="id" type="variable">t</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.workload_of"><span class="id" type="variable">workload_of</span></a> (<span class="id" type="var">tsk</span>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>) (<span class="id" type="var">t1</span> <span class="id" type="var">t2</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>) :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload.html#Workload.workload"><span class="id" type="definition">workload</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="workload_bound.html#t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;define&nbsp;the&nbsp;theorem.&nbsp;Let&nbsp;tsk&nbsp;be&nbsp;any&nbsp;task&nbsp;in&nbsp;the&nbsp;taskset.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sporadic_task"><span class="id" type="variable">sporadic_task</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumption:&nbsp;the&nbsp;task&nbsp;must&nbsp;have&nbsp;valid&nbsp;parameters:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a)&nbsp;period&nbsp;&gt;&nbsp;0&nbsp;(used&nbsp;in&nbsp;divisions)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b)&nbsp;deadline&nbsp;of&nbsp;the&nbsp;jobs&nbsp;=&nbsp;deadline&nbsp;of&nbsp;the&nbsp;task<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c)&nbsp;cost&nbsp;&lt;=&nbsp;period<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(used&nbsp;to&nbsp;prove&nbsp;that&nbsp;the&nbsp;distance&nbsp;between&nbsp;the&nbsp;first&nbsp;and&nbsp;last<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jobs&nbsp;is&nbsp;at&nbsp;least&nbsp;(cost&nbsp;+&nbsp;n*period),&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;number<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;middle&nbsp;jobs.&nbsp;If&nbsp;cost&nbsp;&gt;&gt;&nbsp;period,&nbsp;the&nbsp;claim&nbsp;does&nbsp;not&nbsp;hold<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;every&nbsp;task&nbsp;set.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_valid_task_parameters"><span class="id" type="variable">H_valid_task_parameters</span></a>:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="task.html#SporadicTask.is_valid_sporadic_task"><span class="id" type="definition">is_valid_sporadic_task</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assumption:&nbsp;the&nbsp;task&nbsp;must&nbsp;have&nbsp;a&nbsp;restricted&nbsp;deadline.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;required&nbsp;to&nbsp;prove&nbsp;that&nbsp;n_k&nbsp;(max_jobs)&nbsp;from&nbsp;Bertogna<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;Cirinei's&nbsp;formula&nbsp;accounts&nbsp;for&nbsp;at&nbsp;least&nbsp;the&nbsp;number&nbsp;of<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;middle&nbsp;jobs&nbsp;(i.e.,&nbsp;number&nbsp;of&nbsp;jobs&nbsp;-&nbsp;2&nbsp;in&nbsp;the&nbsp;worst&nbsp;case).&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_restricted_deadline"><span class="id" type="variable">H_restricted_deadline</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;an&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode">+</span> <span class="inlinecode"><span class="id" type="keyword">delta</span>),</span> <span class="inlinecode"><span class="id" type="keyword">with</span></span> <span class="inlinecode"><span class="id" type="keyword">no</span></span> <span class="inlinecode"><span class="id" type="var">deadline</span></span> <span class="inlinecode"><span class="id" type="var">misses</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="keyword">delta</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_no_deadline_misses_during_interval"><span class="id" type="variable">H_no_deadline_misses_during_interval</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.no_deadline_misses_by"><span class="id" type="variable">no_deadline_misses_by</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> (<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;a&nbsp;response-time&nbsp;bound&nbsp;R_tsk&nbsp;for&nbsp;that&nbsp;task&nbsp;in&nbsp;any<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;schedule&nbsp;of&nbsp;this&nbsp;processor&nbsp;platform&nbsp;is&nbsp;also&nbsp;given,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;such&nbsp;that&nbsp;R_tsk&nbsp;&gt;=&nbsp;task_cost&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.time"><span class="id" type="definition">time</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_response_time_ge_cost"><span class="id" type="variable">H_response_time_ge_cost</span></a>: <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.H_response_time_bound"><span class="id" type="variable">H_response_time_bound</span></a> :    <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>),<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_has_completed_by"><span class="id" type="variable">job_has_completed_by</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> (<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;In&nbsp;this&nbsp;section,&nbsp;we&nbsp;prove&nbsp;that&nbsp;the&nbsp;workload&nbsp;of&nbsp;a&nbsp;task&nbsp;in&nbsp;the<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interval&nbsp;<span class="inlinecode"><span class="id" type="var">t1</span>,</span> <span class="inlinecode"><span class="id" type="var">t1</span></span> <span class="inlinecode">+</span> <span class="inlinecode"><span class="id" type="keyword">delta</span>)</span> <span class="inlinecode"><span class="id" type="var">is</span></span> <span class="inlinecode"><span class="id" type="var">bounded</span></span> <span class="inlinecode"><span class="id" type="tactic">by</span></span> <span class="inlinecode"><span class="id" type="var">W</span>.</span> <span class="inlinecode"></span>*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Let's&nbsp;simplify&nbsp;the&nbsp;names&nbsp;a&nbsp;bit.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> := <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> := <a class="idref" href="workload_bound.html#WorkloadBound.max_jobs"><span class="id" type="definition">max_jobs</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="keyword">delta</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a> := <a class="idref" href="workload_bound.html#WorkloadBound.W"><span class="id" type="definition">W</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="keyword">delta</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Identify&nbsp;the&nbsp;subset&nbsp;of&nbsp;jobs&nbsp;that&nbsp;actually&nbsp;cause&nbsp;interference&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a> :=<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">filter</span> (<span class="id" type="keyword">fun</span> (<span class="id" type="var">j</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) =&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">==</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">(</span></a><a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#:bool_scope:x_'&&'_x"><span class="id" type="notation">)</span></a>)<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;let's&nbsp;consider&nbsp;the&nbsp;list&nbsp;of&nbsp;interfering&nbsp;jobs&nbsp;sorted&nbsp;by&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.order"><span class="id" type="variable">order</span></a> := <span class="id" type="keyword">fun</span> (<span class="id" type="var">x</span> <span class="id" type="var">y</span>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>) =&gt; <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#x"><span class="id" type="variable">x</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#y"><span class="id" type="variable">y</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> := (<span class="id" type="definition">sort</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.order"><span class="id" type="variable">order</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;first&nbsp;step&nbsp;consists&nbsp;in&nbsp;simplifying&nbsp;the&nbsp;sum&nbsp;corresponding<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;workload.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence"><span class="id" type="section">SimplifyJobSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remove&nbsp;the&nbsp;elements&nbsp;that&nbsp;we&nbsp;don't&nbsp;care&nbsp;about&nbsp;from&nbsp;the&nbsp;sum&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_simpl_by_filtering_interfering_jobs"><span class="id" type="lemma">workload_bound_simpl_by_filtering_interfering_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">|</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <span class="id" type="var">i</span> <span class="id" type="notation">==</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">i</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">i</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Consider&nbsp;the&nbsp;sum&nbsp;over&nbsp;the&nbsp;sorted&nbsp;sequence&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_simpl_by_sorting_interfering_jobs"><span class="id" type="lemma">workload_bound_simpl_by_sorting_interfering_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">i</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">i</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remember&nbsp;that&nbsp;both&nbsp;sequences&nbsp;have&nbsp;the&nbsp;same&nbsp;set&nbsp;of&nbsp;elements&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_job_in_same_sequence"><span class="id" type="lemma">workload_bound_job_in_same_sequence</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.interfering_jobs"><span class="id" type="variable">interfering_jobs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">(</span></a><a class="idref" href="workload_bound.html#j"><span class="id" type="variable">j</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">)</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remember&nbsp;that&nbsp;all&nbsp;jobs&nbsp;in&nbsp;the&nbsp;sorted&nbsp;sequence&nbsp;is&nbsp;an<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interfering&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_all_jobs_from_tsk"><span class="id" type="lemma">workload_bound_all_jobs_from_tsk</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">j_i</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#j_i"><span class="id" type="variable">j_i</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#j_i"><span class="id" type="variable">j_i</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Remember&nbsp;that&nbsp;consecutive&nbsp;jobs&nbsp;are&nbsp;ordered&nbsp;by&nbsp;arrival.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_jobs_ordered_by_arrival"><span class="id" type="lemma">workload_bound_jobs_ordered_by_arrival</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">forall</span> <span class="id" type="var">i</span> <span class="id" type="var">elem</span>,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#i"><span class="id" type="variable">i</span></a> <span class="id" type="notation">&lt;</span> <span class="id" type="notation">(</span><span class="id" type="definition">size</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">).-1</span> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.order"><span class="id" type="variable">order</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="workload_bound.html#i"><span class="id" type="variable">i</span></a>) (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="workload_bound.html#i"><span class="id" type="variable">i</span></a><span class="id" type="notation">.+1</span>).<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.SimplifyJobSequence"><span class="id" type="section">SimplifyJobSequence</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;if&nbsp;the&nbsp;number&nbsp;of&nbsp;jobs&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;n_k,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;workload&nbsp;bound&nbsp;trivially&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs"><span class="id" type="section">WorkloadNotManyJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_holds_for_at_most_n_k_jobs"><span class="id" type="lemma">workload_bound_holds_for_at_most_n_k_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="definition">size</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span><span class="id" type="var">i</span> <span class="id" type="notation">&lt;-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a><span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <span class="id" type="var">i</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadNotManyJobs"><span class="id" type="section">WorkloadNotManyJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Otherwise,&nbsp;assume&nbsp;that&nbsp;the&nbsp;number&nbsp;of&nbsp;jobs&nbsp;is&nbsp;larger&nbsp;than&nbsp;n_k&nbsp;&gt;=&nbsp;0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;First,&nbsp;consider&nbsp;the&nbsp;simple&nbsp;case&nbsp;with&nbsp;only&nbsp;one&nbsp;job.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob"><span class="id" type="section">WorkloadSingleJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Assume&nbsp;that&nbsp;there's&nbsp;at&nbsp;least&nbsp;one&nbsp;job&nbsp;in&nbsp;the&nbsp;sorted&nbsp;list.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.H_at_least_one_job"><span class="id" type="variable">H_at_least_one_job</span></a>: <span class="id" type="definition">size</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="notation">&gt;</span> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem"><span class="id" type="variable">elem</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst"><span class="id" type="variable">j_fst</span></a> := <span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> 0.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;first&nbsp;job&nbsp;is&nbsp;an&nbsp;interfering&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_j_fst_is_job_of_tsk"><span class="id" type="lemma">workload_bound_j_fst_is_job_of_tsk</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;workload&nbsp;bound&nbsp;holds&nbsp;for&nbsp;the&nbsp;single&nbsp;job.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_holds_for_a_single_job"><span class="id" type="lemma">workload_bound_holds_for_a_single_job</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> 1<span class="id" type="notation">)</span> <a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span>) <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadSingleJob"><span class="id" type="section">WorkloadSingleJob</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;consider&nbsp;the&nbsp;last&nbsp;case&nbsp;where&nbsp;there&nbsp;are&nbsp;at&nbsp;least&nbsp;two&nbsp;jobs:<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;first&nbsp;job&nbsp;j_fst,&nbsp;and&nbsp;the&nbsp;last&nbsp;job&nbsp;j_lst.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Section</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs"><span class="id" type="section">WorkloadTwoOrMoreJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;There&nbsp;are&nbsp;at&nbsp;least&nbsp;two&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a>: <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Datatypes.html#nat"><span class="id" type="inductive">nat</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Hypothesis</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.H_at_least_two_jobs"><span class="id" type="variable">H_at_least_two_jobs</span></a> : <span class="id" type="definition">size</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+2</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Variable</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a>: <a class="idref" href="arrival_sequence.html#ArrivalSequence.JobIn"><span class="id" type="record">JobIn</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.arr_seq"><span class="id" type="variable">arr_seq</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> := <span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> 0.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Let</span> <a name="WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> := <span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;last&nbsp;job&nbsp;is&nbsp;an&nbsp;interfering&nbsp;job&nbsp;of&nbsp;task&nbsp;tsk.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_j_lst_is_job_of_tsk"><span class="id" type="lemma">workload_bound_j_lst_is_job_of_tsk</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.job_task"><span class="id" type="variable">job_task</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">!=</span> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'/\'_x"><span class="id" type="notation">/\</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">\</span><span class="id" type="keyword">in</span> <a class="idref" href="schedule.html#Schedule.jobs_scheduled_between"><span class="id" type="definition">jobs_scheduled_between</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;response&nbsp;time&nbsp;of&nbsp;the&nbsp;first&nbsp;job&nbsp;must&nbsp;fall&nbsp;inside&nbsp;the&nbsp;interval.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_response_time_of_first_job_inside_interval"><span class="id" type="lemma">workload_bound_response_time_of_first_job_inside_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;The&nbsp;arrival&nbsp;of&nbsp;the&nbsp;last&nbsp;job&nbsp;must&nbsp;also&nbsp;fall&nbsp;inside&nbsp;the&nbsp;interval.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_last_job_arrives_before_end_of_interval"><span class="id" type="lemma">workload_bound_last_job_arrives_before_end_of_interval</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;upper-bound&nbsp;the&nbsp;service&nbsp;of&nbsp;the&nbsp;first&nbsp;and&nbsp;last&nbsp;jobs&nbsp;using&nbsp;their&nbsp;arrival&nbsp;times.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_service_of_first_and_last_jobs"><span class="id" type="lemma">workload_bound_service_of_first_and_last_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">(</span><a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a>  <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a><span class="id" type="notation">)</span> <span class="id" type="notation">+</span> <span class="id" type="notation">(</span><a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">-</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a><span class="id" type="notation">)</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Simplify&nbsp;the&nbsp;expression&nbsp;from&nbsp;the&nbsp;previous&nbsp;lemma.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_simpl_expression_with_first_and_last"><span class="id" type="lemma">workload_bound_simpl_expression_with_first_and_last</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">-</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="notation">(</span><a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">-</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a><span class="id" type="notation">)</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">delta</span> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.R_tsk"><span class="id" type="variable">R_tsk</span></a> <span class="id" type="notation">-</span> <span class="id" type="notation">(</span><a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">-</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a><span class="id" type="notation">)</span>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Bound&nbsp;the&nbsp;service&nbsp;of&nbsp;the&nbsp;middle&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_service_of_middle_jobs"><span class="id" type="lemma">workload_bound_service_of_middle_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span><span class="id" type="notation">.+1</span>) <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">&lt;=</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a> <span class="id" type="notation">*</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_cost"><span class="id" type="variable">task_cost</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Conclude&nbsp;that&nbsp;the&nbsp;distance&nbsp;between&nbsp;first&nbsp;and&nbsp;last&nbsp;is&nbsp;at&nbsp;least&nbsp;num_mid_jobs&nbsp;+&nbsp;1&nbsp;periods.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_many_periods_in_between"><span class="id" type="lemma">workload_bound_many_periods_in_between</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <span class="id" type="notation">-</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span> <span class="id" type="notation">*</span> <span class="id" type="notation">(</span><a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a><span class="id" type="notation">)</span>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;To&nbsp;simplify,&nbsp;call&nbsp;the&nbsp;jobs&nbsp;'cur'&nbsp;and&nbsp;'next'&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Show&nbsp;that&nbsp;cur&nbsp;arrives&nbsp;earlier&nbsp;than&nbsp;next&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Show&nbsp;that&nbsp;both&nbsp;cur&nbsp;and&nbsp;next&nbsp;are&nbsp;in&nbsp;the&nbsp;arrival&nbsp;sequence&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Use&nbsp;the&nbsp;sporadic&nbsp;task&nbsp;model&nbsp;to&nbsp;conclude&nbsp;that&nbsp;cur&nbsp;and&nbsp;next&nbsp;are&nbsp;separated<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;at&nbsp;least&nbsp;(task_period&nbsp;tsk)&nbsp;units.&nbsp;Of&nbsp;course&nbsp;this&nbsp;only&nbsp;holds&nbsp;if&nbsp;cur&nbsp;!=&nbsp;next.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;we&nbsp;don't&nbsp;know&nbsp;much&nbsp;about&nbsp;the&nbsp;list&nbsp;(except&nbsp;that&nbsp;it's&nbsp;sorted),&nbsp;we&nbsp;must<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;also&nbsp;prove&nbsp;that&nbsp;it&nbsp;doesn't&nbsp;contain&nbsp;duplicates.&nbsp;*)</span><br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now,&nbsp;we&nbsp;prove&nbsp;an&nbsp;auxiliary&nbsp;lemma&nbsp;for&nbsp;the&nbsp;next&nbsp;result.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;statement&nbsp;is&nbsp;not&nbsp;meaningful,&nbsp;since&nbsp;it's&nbsp;part&nbsp;of&nbsp;a&nbsp;proof<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;contradiction.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_helper_lemma"><span class="id" type="lemma">workload_bound_helper_lemma</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_period"><span class="id" type="variable">task_period</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">&lt;=</span> <a class="idref" href="arrival_sequence.html#ArrivalSequence.job_arrival"><span class="id" type="definition">job_arrival</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <span class="id" type="notation">+</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.task_deadline"><span class="id" type="variable">task_deadline</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a>.<br/>
-&nbsp;Prove&nbsp;that&nbsp;arr_fst&nbsp;+&nbsp;d_k&nbsp;&lt;=&nbsp;t2&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;assume&nbsp;that&nbsp;(job_arrival&nbsp;j_fst&nbsp;+&nbsp;d_k&nbsp;&lt;&nbsp;t1)&nbsp;and&nbsp;reach&nbsp;a&nbsp;contradiction.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;j_fst&nbsp;doesn't&nbsp;miss&nbsp;deadlines,&nbsp;then&nbsp;the&nbsp;service&nbsp;it&nbsp;receives&nbsp;between&nbsp;t1&nbsp;and&nbsp;t2<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equals&nbsp;0,&nbsp;which&nbsp;contradicts&nbsp;the&nbsp;previous&nbsp;assumption&nbsp;that&nbsp;j_fst&nbsp;interferes&nbsp;in<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;scheduling&nbsp;window.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Prove&nbsp;that&nbsp;n_k&nbsp;is&nbsp;at&nbsp;least&nbsp;the&nbsp;number&nbsp;of&nbsp;the&nbsp;middle&nbsp;jobs&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_n_k_covers_middle_jobs"><span class="id" type="lemma">workload_bound_n_k_covers_middle_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> <span class="id" type="notation">&gt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;n_k&nbsp;=&nbsp;num_mid_jobs,&nbsp;then&nbsp;the&nbsp;workload&nbsp;bound&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_n_k_equals_num_mid_jobs"><span class="id" type="lemma">workload_bound_n_k_equals_num_mid_jobs</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span><span class="id" type="notation">.+1</span>) <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;If&nbsp;n_k&nbsp;=&nbsp;num_mid_jobs&nbsp;+&nbsp;1,&nbsp;then&nbsp;the&nbsp;workload&nbsp;bound&nbsp;holds.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Lemma</span> <a name="WorkloadBound.workload_bound_n_k_equals_num_mid_jobs_plus_1"><span class="id" type="lemma">workload_bound_n_k_equals_num_mid_jobs_plus_1</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">.+1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.4pl4/stdlib/Coq.Init.Logic.html#:type_scope:x_'='_x"><span class="id" type="notation">=</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.n_k"><span class="id" type="variable">n_k</span></a> -&gt;<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_lst"><span class="id" type="variable">j_lst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.j_fst"><span class="id" type="variable">j_fst</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a> <span class="id" type="notation">+</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">\</span><span class="id" type="notation">sum_</span><span class="id" type="notation">(</span>0 <span class="id" type="notation">&lt;=</span> <span class="id" type="var">i</span> <span class="id" type="notation">&lt;</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.num_mid_jobs"><span class="id" type="variable">num_mid_jobs</span></a><span class="id" type="notation">)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="schedule.html#Schedule.service_during"><span class="id" type="definition">service_during</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.sched"><span class="id" type="variable">sched</span></a> (<span class="id" type="definition">nth</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs.elem"><span class="id" type="variable">elem</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.sorted_jobs"><span class="id" type="variable">sorted_jobs</span></a> <span class="id" type="var">i</span><span class="id" type="notation">.+1</span>) <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.t2"><span class="id" type="variable">t2</span></a><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.WorkloadTwoOrMoreJobs"><span class="id" type="section">WorkloadTwoOrMoreJobs</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Using&nbsp;the&nbsp;lemmas&nbsp;above,&nbsp;we&nbsp;prove&nbsp;the&nbsp;main&nbsp;theorem&nbsp;about&nbsp;the&nbsp;workload&nbsp;bound.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">Theorem</span> <a name="WorkloadBound.workload_bounded_by_W"><span class="id" type="lemma">workload_bounded_by_W</span></a> :<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.workload_of"><span class="id" type="variable">workload_of</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.tsk"><span class="id" type="variable">tsk</span></a> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> (<a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.t1"><span class="id" type="variable">t1</span></a> <span class="id" type="notation">+</span> <span class="id" type="keyword">delta</span>) <span class="id" type="notation">&lt;=</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof.workload_bound"><span class="id" type="variable">workload_bound</span></a>.<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Use&nbsp;the&nbsp;definition&nbsp;of&nbsp;workload&nbsp;based&nbsp;on&nbsp;list&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;We&nbsp;only&nbsp;care&nbsp;about&nbsp;the&nbsp;jobs&nbsp;that&nbsp;cause&nbsp;interference.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;order&nbsp;the&nbsp;list&nbsp;by&nbsp;job&nbsp;arrival&nbsp;time.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Next,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;workload&nbsp;bound&nbsp;holds&nbsp;if&nbsp;n_k<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;no&nbsp;larger&nbsp;than&nbsp;the&nbsp;number&nbsp;of&nbsp;interferings&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Find&nbsp;some&nbsp;dummy&nbsp;element&nbsp;to&nbsp;use&nbsp;in&nbsp;the&nbsp;nth&nbsp;function&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Now&nbsp;we&nbsp;index&nbsp;the&nbsp;sum&nbsp;to&nbsp;access&nbsp;the&nbsp;first&nbsp;and&nbsp;last&nbsp;elements.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;First,&nbsp;we&nbsp;show&nbsp;that&nbsp;the&nbsp;bound&nbsp;holds&nbsp;for&nbsp;an&nbsp;empty&nbsp;list&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Then,&nbsp;we&nbsp;show&nbsp;the&nbsp;same&nbsp;for&nbsp;a&nbsp;singleton&nbsp;set&nbsp;of&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;Knowing&nbsp;that&nbsp;we&nbsp;have&nbsp;at&nbsp;least&nbsp;two&nbsp;elements,&nbsp;we&nbsp;take&nbsp;first&nbsp;and&nbsp;last&nbsp;out&nbsp;of&nbsp;the&nbsp;sum&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">(*&nbsp;There&nbsp;are&nbsp;two&nbsp;cases&nbsp;to&nbsp;be&nbsp;analyze&nbsp;since&nbsp;n&nbsp;&lt;=&nbsp;n_k&nbsp;&lt;&nbsp;n&nbsp;+&nbsp;2,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;middle&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;Case&nbsp;1:&nbsp;n_k&nbsp;=&nbsp;n&nbsp;+&nbsp;1,&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;middle&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;Case&nbsp;2:&nbsp;n_k&nbsp;=&nbsp;n,&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;middle&nbsp;jobs.&nbsp;*)</span><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound.MainProof"><span class="id" type="section">MainProof</span></a>.<br/>
-
-<br/>
-&nbsp;&nbsp;<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#WorkloadBound.ProofWorkloadBound"><span class="id" type="section">ProofWorkloadBound</span></a>.<br/>
-
-<br/>
-<span class="id" type="keyword">End</span> <a class="idref" href="workload_bound.html#"><span class="id" type="module">WorkloadBound</span></a>.<br/>
-</div>
-</div>
-
-<div id="footer">
-<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
-</div>
-
-</div>
-
-</body>
-</html>
\ No newline at end of file
-- 
GitLab