From 18d6d851a7b061faa650f11f37b2e976fbbdde83 Mon Sep 17 00:00:00 2001
From: Maxime Lesourd <maxime.lesourd@inria.fr>
Date: Tue, 15 Oct 2019 16:29:08 +0200
Subject: [PATCH] Change definition of service_implies_scheduled

---
 restructuring/analysis/basic_facts/service.v | 4 +---
 restructuring/behavior/schedule.v            | 7 +++----
 restructuring/model/processor/ideal.v        | 2 +-
 restructuring/model/processor/spin.v         | 3 ++-
 restructuring/model/processor/varspeed.v     | 4 ++--
 5 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/restructuring/analysis/basic_facts/service.v b/restructuring/analysis/basic_facts/service.v
index 44539d945..9c01810c7 100644
--- a/restructuring/analysis/basic_facts/service.v
+++ b/restructuring/analysis/basic_facts/service.v
@@ -250,7 +250,6 @@ Section RelationToScheduled.
     rewrite /service_at /scheduled_at.
     move=> t NOT_SCHED.
     rewrite service_implies_scheduled //.
-      by apply: negbTE.
   Qed.
 
   (* Conversely, if a job receives service, then it must be scheduled. *)
@@ -354,8 +353,7 @@ Section RelationToScheduled.
     Proof.
       move=> t. rewrite /scheduled_at /service_at.
       split => [NOT_SCHED | NO_SERVICE].
-      - apply negbTE in NOT_SCHED.
-        by rewrite service_implies_scheduled //.
+      - by rewrite service_implies_scheduled //.
       - apply (contra (H_scheduled_implies_serviced j (sched t))).
         by rewrite -eqn0Ngt; apply /eqP => //.
     Qed.
diff --git a/restructuring/behavior/schedule.v b/restructuring/behavior/schedule.v
index d52e29116..a80b3b697 100644
--- a/restructuring/behavior/schedule.v
+++ b/restructuring/behavior/schedule.v
@@ -9,16 +9,15 @@ Class ProcessorState (Job : JobType) (State : Type) :=
   {
     (* For a given processor state, the [scheduled_in] predicate checks whether a given
        job is running in that state. *)
-    scheduled_in: Job -> State -> bool;
+    scheduled_in : Job -> State -> bool;
     (* For a given processor state, the [service_in] function determines how much
        service a given job receives in that state. *)
-    service_in: Job -> State -> work;
+    service_in : Job -> State -> work;
     (* For a given processor state, a job does not receive service if it is not scheduled
        in that state *)
     service_implies_scheduled :
-      forall j s, scheduled_in j s = false -> service_in j s = 0
+      forall j s, ~~ scheduled_in j s -> service_in j s = 0
   }.
 
 (* A schedule maps an instant to a processor state *)
 Definition schedule (PState : Type) := instant -> PState.
-
diff --git a/restructuring/model/processor/ideal.v b/restructuring/model/processor/ideal.v
index ca65de81f..e692211e0 100644
--- a/restructuring/model/processor/ideal.v
+++ b/restructuring/model/processor/ideal.v
@@ -15,6 +15,6 @@ Section State.
       service_in j s   := s == Some j;
     }.
   Next Obligation.
-    by rewrite H.
+    by move: H=> /negbTE->.
   Defined.
 End State.
diff --git a/restructuring/model/processor/spin.v b/restructuring/model/processor/spin.v
index 44826d232..931dc457f 100644
--- a/restructuring/model/processor/spin.v
+++ b/restructuring/model/processor/spin.v
@@ -37,6 +37,7 @@ Section State.
       service_in   := service_in
     }.
   Next Obligation.
-    by move: H; case s => //= j' ->.
+    move: H.
+    by case: s=>//= j' /negbTE->.
   Defined.
 End State.
diff --git a/restructuring/model/processor/varspeed.v b/restructuring/model/processor/varspeed.v
index 2708b1490..a0dccb4b7 100644
--- a/restructuring/model/processor/varspeed.v
+++ b/restructuring/model/processor/varspeed.v
@@ -34,7 +34,7 @@ Section State.
     }.
   Next Obligation.
       move: j s H.
-      by move=> j []//= j' s->.
+      by move=> j []//= j' s/negbTE->.
   Defined.
-  
+
 End State.
-- 
GitLab