From fbcbb9973368e0eebaacfdc6279c8ffb15834bd3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Brandenburg?= <bbb@mpi-sws.org>
Date: Mon, 2 Dec 2019 13:52:41 +0100
Subject: [PATCH] address spell-checking issues in EDF optimality proof

---
 .../analysis/facts/transform/edf_opt.v        | 60 ++++++++++---------
 .../analysis/facts/transform/replace_at.v     | 32 +++++-----
 .../analysis/facts/transform/swaps.v          |  6 +-
 restructuring/analysis/transform/edf_trans.v  | 46 +++++++-------
 4 files changed, 74 insertions(+), 70 deletions(-)

diff --git a/restructuring/analysis/facts/transform/edf_opt.v b/restructuring/analysis/facts/transform/edf_opt.v
index 2536c0ca6..8bc9b823f 100644
--- a/restructuring/analysis/facts/transform/edf_opt.v
+++ b/restructuring/analysis/facts/transform/edf_opt.v
@@ -7,9 +7,9 @@ Require Export rt.restructuring.analysis.facts.readiness.basic.
 
 (** This file contains the main argument of the EDF optimality proof,
     starting with an analysis of the individual functions that drive
-    the "EDF-ication" of a given reference schedule and ending with
-    the proofs of individual properties of the obtained EDF
-    schedule. *)
+    the piece-wise transformation of a given reference schedule in an
+    EDF schedule, and ending with proofs of individual properties of
+    the obtained EDF schedule. *)
 
 (** Throughout this file, we assume ideal uniprocessor schedules. *)
 Require Import rt.restructuring.model.processor.ideal.
@@ -170,7 +170,7 @@ End FindSwapCandidateFacts.
 
 
 (** In the next section, we analyze properties of [make_edf_at], which
-    we abbreviate as "mea" in the following. *)
+    we abbreviate as "[mea]" in the following. *)
 Section MakeEDFAtFacts.
 
   (** For any given type of jobs... *)
@@ -279,13 +279,14 @@ Section MakeEDFAtFacts.
 
   (** Next comes a big step in the optimality proof: we observe that
      [make_edf_at] indeed ensures that [EDF_at] holds at time [t_edf] in
-     sched'. As this is a larger argument, we proceed by case analysis and
+     [sched']. As this is a larger argument, we proceed by case analysis and
      first establish a couple of helper lemmas in the following section. *)
   Section GuaranteeCaseAnalysis.
 
-    (** Let j_orig denote the job scheduled in sched at time t_edf, let j_edf
-       denote the job scheduled in sched' at time t_edf, and let j' denote any
-       job scheduled in sched' at some time t' after t_edf...  *)
+    (** Let [j_orig] denote the job scheduled in [sched] at time
+        [t_edf], let [j_edf] denote the job scheduled in [sched'] at
+        time [t_edf], and let [j'] denote any job scheduled in
+        [sched'] at some time [t'] after [t_edf]...  *)
     Variable j_orig j_edf j': Job.
 
     Variable t': instant.
@@ -295,18 +296,18 @@ Section MakeEDFAtFacts.
     Hypothesis H_sched_edf: scheduled_at sched' j_edf t_edf.
     Hypothesis H_sched': scheduled_at sched' j' t'.
 
-    (** ... and that arrives before time t_edf. *)
+    (** ... and that arrives before time [t_edf]. *)
     Hypothesis H_arrival_j' : job_arrival j' <= t_edf.
 
     (** We begin by observing three simple facts that will be used repeatedly in
-       the case analysis. *)
+        the case analysis. *)
 
-    (** First, the deadline of j_orig is later than t_edf. *)
+    (** First, the deadline of [j_orig] is later than [t_edf]. *)
     Fact mea_guarantee_dl_orig: t_edf < job_deadline j_orig.
     Proof. by apply (scheduled_job_in_sched_has_later_deadline j_orig t_edf H_sched_orig). Qed.
 
-    (** Second, by the definition of sched', j_edf is scheduled in sched at the time
-       returned by [find_swap_candidate]. *)
+    (** Second, by the definition of [sched'], [j_edf] is scheduled in
+        [sched] at the time returned by [find_swap_candidate]. *)
     Fact mea_guarantee_fsc_is_j_edf: sched (find_swap_candidate sched t_edf j_orig) = Some j_edf.
     Proof.
       move: (H_sched_orig). rewrite scheduled_at_def => /eqP SCHED.
@@ -317,7 +318,8 @@ Section MakeEDFAtFacts.
       - by rewrite ifT // => /eqP.
     Qed.
 
-    (** Third, the deadline of j_edf is no later than the deadline of j_orig. *)
+    (** Third, the deadline of [j_edf] is no later than the deadline
+        of [j_orig]. *)
     Fact mea_guarantee_deadlines: job_deadline j_edf <= job_deadline j_orig.
     Proof.
       apply: (fsc_no_later_deadline sched _ _ t_edf) => //.
@@ -327,11 +329,12 @@ Section MakeEDFAtFacts.
 
     (** With the setup in place, we are now ready to begin the case analysis. *)
 
-    (** First, we consider the simpler case where t' is no earlier than the
-       deadline of j_orig. This case is simpler because t' being no earlier
-       than j_orig's deadline implies that j' has deadline no earlier than
-       j_orig (since no scheduled job in sched misses a deadline), which in
-       turn has a deadline no earlier than j_edf.  *)
+    (** First, we consider the simpler case where [t'] is no earlier
+        than the deadline of [j_orig]. This case is simpler because
+        [t'] being no earlier than [j_orig]'s deadline implies that
+        [j'] has deadline no earlier than [j_orig] (since no scheduled
+        job in [sched] misses a deadline), which in turn has a
+        deadline no earlier than [j_edf].  *)
     Lemma mea_guarantee_case_t'_past_deadline:
       job_deadline j_orig <= t' ->
       job_deadline j_edf <= job_deadline j'.
@@ -343,8 +346,8 @@ Section MakeEDFAtFacts.
       by apply ltnW.
     Qed.
 
-    (** Next, we consider the more difficult case, where t' is before the
-       deadline of j_orig. *)
+    (** Next, we consider the more difficult case, where [t'] is
+        before the deadline of [j_orig]. *)
     Lemma mea_guarantee_case_t'_before_deadline:
       t' < job_deadline j_orig ->
       job_deadline j_edf <= job_deadline j'.
@@ -378,8 +381,9 @@ Section MakeEDFAtFacts.
 
   End GuaranteeCaseAnalysis.
 
-  (** Finally, putting the preceding case analysis together, we obtain the
-     result that [make_edf_at] establishes [EDF_at] at time [t_edf]. *)
+  (** Finally, putting the preceding cases together, we obtain the
+      result that [make_edf_at] establishes [EDF_at] at time
+      [t_edf]. *)
   Lemma make_edf_at_guarantee:
     EDF_at sched' t_edf.
   Proof.
@@ -394,8 +398,8 @@ Section MakeEDFAtFacts.
       by apply: (mea_guarantee_case_t'_past_deadline j_orig j_edf j' t').
   Qed.
 
-  (** We observe that [make_edf_at] maintains the property that jobs must arrive
-     to execute. *)
+  (** We observe that [make_edf_at] maintains the property that jobs
+      must arrive to execute. *)
   Lemma mea_jobs_must_arrive:
     jobs_must_arrive_to_execute sched'.
   Proof.
@@ -535,7 +539,7 @@ Section EDFPrefixFacts.
   (** Consider any point in time, denoted [horizon], and... *)
   Variable horizon: instant.
 
-  (** ...let [sched'] denote the schedule obtained by EDF-ifying
+  (** ...let [sched'] denote the schedule obtained by transforming
      [sched] up to the horizon. *)
   Let sched' := edf_transform_prefix sched horizon.
 
@@ -707,8 +711,8 @@ Section EDFPrefixInclusion.
 End EDFPrefixInclusion.
 
 
-(** In the following section, we finally establish properties of the overall
-    EDF-ication operation [edf_transform]. *)
+(** In the following section, we finally establish properties of the
+    overall EDF transformation[edf_transform]. *)
 Section EDFTransformFacts.
 
   (** For any given type of jobs... *)
diff --git a/restructuring/analysis/facts/transform/replace_at.v b/restructuring/analysis/facts/transform/replace_at.v
index 20a2fe23b..29a4d8805 100644
--- a/restructuring/analysis/facts/transform/replace_at.v
+++ b/restructuring/analysis/facts/transform/replace_at.v
@@ -21,12 +21,12 @@ Section ReplaceAtFacts.
   (** ...and a replacement state [state]. *)
   Variable nstate: PState.
 
-  (** In the following, let sched' denote the schedule with replacement at time
+  (** In the following, let [sched'] denote the schedule with replacement at time
      t'. *)
   Let sched' := replace_at sched t' nstate.
 
   (** We begin with the trivial observation that the schedule doesn't change at
-     other times. *)
+      other times. *)
   Lemma rest_of_schedule_invariant:
     forall t, t <> t' -> sched' t = sched t.
   Proof.
@@ -36,8 +36,8 @@ Section ReplaceAtFacts.
     by move/eqP in TT; rewrite TT in DIFF; contradiction.
   Qed.
 
-  (** As a result, the service in intervals that do not intersect with t' is
-     invariant, too. *)
+  (** As a result, the service in intervals that do not intersect with
+      [t'] is invariant, too. *)
   Lemma service_at_other_times_invariant:
     forall t1 t2,
       t2 <= t' \/ t' < t1 ->
@@ -54,10 +54,10 @@ Section ReplaceAtFacts.
     apply /andP; by split.
   Qed.
 
-  (** Next, we consider the amount of service received in intervals that do span
-     across the replacement point.  We can relate the service received in the
-     original and the new schedules by adding the service in the respective
-     "missing" state... *)
+  (** Next, we consider the amount of service received in intervals
+      that do span across the replacement point.  We can relate the
+      service received in the original and the new schedules by adding
+      the service in the respective "missing" state... *)
   Lemma service_delta:
     forall t1 t2,
       t1 <= t' < t2 ->
@@ -82,10 +82,11 @@ Section ReplaceAtFacts.
         service_during sched  j t1 t2 + service_at sched' j t' - service_at sched j t'.
   Proof. move => t1 t2 ORDER j. by rewrite service_delta// addnK. Qed.
 
-  (** As another simple invariant (useful for case analysis), we observe that if
-     a job is scheduled neither in the replaced nor in the new state, then at
-     any time it receives exactly the same amount of service in the new
-     schedule with replacements as in the original schedule. *)
+  (** As another simple invariant (useful for case analysis), we
+      observe that if a job is scheduled neither in the replaced nor
+      in the new state, then at any time it receives exactly the same
+      amount of service in the new schedule with replacements as in
+      the original schedule. *)
   Lemma service_at_of_others_invariant (j: Job):
     ~~ scheduled_in j (sched' t') ->
     ~~ scheduled_in j (sched t') ->
@@ -99,9 +100,10 @@ Section ReplaceAtFacts.
     - rewrite rest_of_schedule_invariant//.
   Qed.
 
-  (** Based on the previous observation, we can trivially lift the invariant
-     that jobs not involved in the replacement receive equal service to the
-     cumulative service received in any interval. *)
+  (** Based on the previous observation, we can trivially lift the
+      invariant that jobs not involved in the replacement receive
+      equal service to the cumulative service received in any
+      interval. *)
   Corollary service_during_of_others_invariant (j: Job):
     ~~ scheduled_in j (sched' t') ->
     ~~ scheduled_in j (sched t') ->
diff --git a/restructuring/analysis/facts/transform/swaps.v b/restructuring/analysis/facts/transform/swaps.v
index 7529e887a..1b27adf6b 100644
--- a/restructuring/analysis/facts/transform/swaps.v
+++ b/restructuring/analysis/facts/transform/swaps.v
@@ -295,11 +295,11 @@ Section SwappedScheduleProperties.
   Hypothesis H_order: t1 <= t2.
 
   (** We let [sched'] denote the schedule in which the allocations at
-     [t1] and [t2] have been swapped. *)
+      [t1] and [t2] have been swapped. *)
   Let sched' := swapped sched t1 t2.
 
-  (** First, we observe that if jobs never accomulate more service than
-     required, then that's still the case after the swap. *)
+  (** First, we observe that if jobs never accumulate more service than
+      required, then that's still the case after the swap. *)
   Lemma swapped_service_bound:
     (forall j t, service sched  j t <= job_cost j) ->
     (forall j t, service sched' j t <= job_cost j).
diff --git a/restructuring/analysis/transform/edf_trans.v b/restructuring/analysis/transform/edf_trans.v
index 65ed0841b..0d6a78dd1 100644
--- a/restructuring/analysis/transform/edf_trans.v
+++ b/restructuring/analysis/transform/edf_trans.v
@@ -1,8 +1,9 @@
 Require Export rt.restructuring.analysis.transform.prefix.
 Require Export rt.restructuring.analysis.transform.swap.
 
-(** In this file we define the "EDF-ification" of a schedule, the
-    operation at the core of the EDF optimality proof. *)
+(** In this file we define the EDF transformation of a schedule, which turns a
+    (finite prefix of a) schedule into an EDF schedule. This operation is at
+    the core of the EDF optimality proof. *)
 
 Section EDFTransformation.
   (** Consider any given type of jobs... *)
@@ -12,37 +13,34 @@ Section EDFTransformation.
   Let PState := ideal.processor_state Job.
   Let SchedType := schedule (PState).
 
-  (** We say that a state s1 "has an earlier or equal deadline" than a
-     state s2 if the job scheduled in state s1 has has an earlier or
-     equal deadline than the job scheduled in state s2. This function
-     is never used on idle states, so the default values are
-     irrelevant. *)
+  (** We say that a state [s1] "has an earlier or equal deadline" than a state
+      [s2] if the job scheduled in state [s1] has has an earlier or equal
+      deadline than the job scheduled in state [s2]. This function is never
+      used on idle states, so the default values are irrelevant. *)
   Definition earlier_deadline (s1 s2: PState) :=
     (oapp job_deadline 0 s1) <= (oapp job_deadline 0 s2).
 
-  (** We say that a state is relevant (for the purpose of the
-     transformation) if it is not idle and if the job scheduled in it
-     has arrived prior to some given reference time. *)
+  (** We say that a state is relevant (for the purpose of the transformation)
+      if it is not idle and if the job scheduled in it has arrived prior to
+      some given reference time. *)
   Definition relevant_pstate (reference_time: instant) (s: PState) :=
     match s with
     | None => false
     | Some j' => job_arrival j' <= reference_time
     end.
 
-  (** Next, we define a central element of the "EDF-ification"
-     procedure: given a job scheduled at a time t1, find a later time
-     t2 before the job's deadlineat which a job with an
-     earlier-or-equal deadline is scheduled. In other words, find a
-     job that causes the [EDF_at] property to be violated at time
-     t1. *)
+  (** Next, we define a central element of the EDF transformation procedure:
+      given a job scheduled at a time [t1], find a later time [t2] before the
+      job's deadline at which a job with an earlier-or-equal deadline is
+      scheduled. In other words, find a job that causes the [EDF_at] property
+      to be violated at time [t1]. *)
   Definition find_swap_candidate (sched: SchedType) (t1: instant) (j: Job) :=
     if search_arg sched (relevant_pstate t1) earlier_deadline t1 (job_deadline j) is Some t
     then t
     else 0.
 
-  (** The point-wise EDF-ification procedure: given a schedule and a
-     time t1, ensure that the schedule satisfies [EDF_at] at time
-     t1. *)
+  (** The point-wise EDF transformation procedure: given a schedule and a time
+      [t1], ensure that the schedule satisfies [EDF_at] at time [t1]. *)
   Definition make_edf_at (sched: SchedType) (t1: instant): SchedType :=
     match sched t1 with
     | None => sched (* leave idle instants alone *)
@@ -53,14 +51,14 @@ Section EDFTransformation.
     end.
 
   (** To transform a finite prefix of a given reference schedule, apply
-     [make_edf_at] to every point up to the given finite horizon. *)
+      [make_edf_at] to every point up to the given finite horizon. *)
   Definition edf_transform_prefix (sched: SchedType) (horizon: instant): SchedType :=
     prefix_map sched make_edf_at horizon.
 
-  (** Finally, a full EDF schedule (i.e., one that satisfies [EDF_at]
-     at any time) is obtained by first computing an EDF prefix up to
-     and including the requested time t, and by then looking at the
-     last point of the prefix. *)
+  (** Finally, a full EDF schedule (i.e., one that satisfies [EDF_at] at any
+      time) is obtained by first computing an EDF prefix up to and including
+      the requested time [t], and by then looking at the last point of the
+      prefix. *)
   Definition edf_transform (sched: SchedType) (t: instant): ideal.processor_state Job :=
     let
       edf_prefix := edf_transform_prefix sched t.+1
-- 
GitLab