diff --git a/results/rs/edf/fully_nonpreemptive.v b/results/rs/edf/fully_nonpreemptive.v
index ac69e0d1f522deb164a2c92db368522ff325c3fd..165f9b43f99b925134d381a0fb0f053f13669c8b 100644
--- a/results/rs/edf/fully_nonpreemptive.v
+++ b/results/rs/edf/fully_nonpreemptive.v
@@ -188,7 +188,6 @@ Section RTAforFullyNonPreemptiveEDFModelwithArrivalCurves.
     move=> js ARRs TSKs.
     have [ZERO|POS] := posnP (job_cost js); first by rewrite /job_response_time_bound /completed_by ZERO.
     have READ : work_bearing_readiness arr_seq sched by done.
-    have UNIT: unit_service_proc_model (rs_processor_state Job) by exact: unit_supply_is_unit_service.
     have VPR : valid_preemption_model arr_seq sched by exact: valid_fully_nonpreemptive_model => //.
     eapply uniprocessor_response_time_bound_restricted_supply_seq with (L := L) => //.
     - exact: instantiated_i_and_w_are_coherent_with_schedule.
diff --git a/results/rs/fifo/bounded_nps.v b/results/rs/fifo/bounded_nps.v
index ee9b32e3a8b399ceb8e9a2de5f8e6d71b0fdd704..4f3bc630182a7dd558beb782eb5f6172380d8531 100644
--- a/results/rs/fifo/bounded_nps.v
+++ b/results/rs/fifo/bounded_nps.v
@@ -30,9 +30,9 @@ Section RTAforFullyPreemptiveFIFOModelwithArrivalCurves.
       - tasks, jobs, and their parameters,
       - the sequence of job arrivals,
       - worst-case execution time (WCET) and the absence of self-suspensions,
-      - the task under analysis, and, finally,
-      - an arbitrary schedule of the task set,
-      - and a supply-bound function. *)
+      - the task under analysis,
+      - an arbitrary schedule of the task set, and finally,
+      - a supply-bound function. *)
 
   (** *** Processor Model *)
 
diff --git a/results/rs/fp/fully_preemptive.v b/results/rs/fp/fully_preemptive.v
index 959a674496ba624f3e0684e16cdb972f9df3b2b0..4fe4e02cde4146e1c8e981c5a763cb69109db8a8 100644
--- a/results/rs/fp/fully_preemptive.v
+++ b/results/rs/fp/fully_preemptive.v
@@ -13,7 +13,7 @@ Require Export prosa.analysis.facts.model.task_cost.
     schedulers, assuming a workload of sporadic real-time tasks
     characterized by arbitrary arrival curves executing upon a
     uniprocessor with arbitrary supply restrictions. To this end, we
-    instantiate the _abstract Sequential Restricted-Supply
+    instantiate the sequential variant of _abstract Restricted-Supply
     Response-Time Analysis_ (aRSA) as provided in the
     [prosa.analysis.abstract.restricted_supply] module. *)
 Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
@@ -29,21 +29,15 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
       - tasks, jobs, and their parameters,
       - the sequence of job arrivals,
       - worst-case execution time (WCET) and the absence of self-suspensions,
-      - the set of tasks under analysis,
-      - the task under analysis, and, finally,
-      - an arbitrary schedule of the task set. *)
+      - the task under analysis,
+      - an arbitrary schedule of the task set, and finally,
+      - a supply-bound function. *)
 
   (** *** Processor Model *)
 
-  (** Consider a restricted-supply uniprocessor model, ... *)
+  (** Consider a restricted-supply uniprocessor model. *)
   #[local] Existing Instance rs_processor_state.
 
-  (** ... where the minimum amount of supply is defined via a monotone
-      unit-supply-bound function [SBF]. *)
-  Context {SBF : SupplyBoundFunction}.
-  Hypothesis H_SBF_monotone : sbf_is_monotone SBF.
-  Hypothesis H_unit_SBF : unit_supply_bound_function SBF.
-
   (** *** Tasks and Jobs  *)
 
   (** Consider any type of tasks, each characterized by a WCET
@@ -107,7 +101,7 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
 
   (** *** The Schedule *)
 
-  (** Finally, consider any arbitrary, work-conserving, valid
+  (** Consider any arbitrary, work-conserving, valid
       restricted-supply uni-processor schedule of the given arrival
       sequence [arr_seq] (and hence the given task set [ts]). *)
   Variable sched : schedule (rs_processor_state Job).
@@ -121,15 +115,22 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
   Hypothesis H_priority_is_reflexive : reflexive_task_priorities FP.
   Hypothesis H_priority_is_transitive : transitive_task_priorities FP.
 
-  (** We assume that the schedule respects the
-      [FP] scheduling policy. *)
+  (** We assume that the schedule respects the [FP] scheduling policy. *)
   Hypothesis H_respects_policy_at_preemption_point :
     respects_FP_policy_at_preemption_point arr_seq sched FP.
 
-  (** Last but not least, we assume that [SBF] properly characterizes
-      all busy intervals in [sched]. That is, (1) [SBF 0 = 0] and (2)
-      for any duration [Δ], at least [SBF Δ] supply is available in
-      any busy-interval prefix of length [Δ]. *)
+  (** *** Supply-Bound Function *)
+
+  (** Assume the minimum amount of supply that any job of task [tsk]
+      receives is defined by a monotone unit-supply-bound function [SBF]. *)
+  Context {SBF : SupplyBoundFunction}.
+  Hypothesis H_SBF_monotone : sbf_is_monotone SBF.
+  Hypothesis H_unit_SBF : unit_supply_bound_function SBF.
+
+  (** We assume that [SBF] properly characterizes all busy intervals
+      in [sched]. That is, (1) [SBF 0 = 0] and (2) for any duration
+      [Δ], at least [SBF Δ] supply is available in any busy-interval
+      prefix of length [Δ]. *)
   Hypothesis H_valid_SBF : valid_busy_sbf arr_seq sched SBF.
 
   (** ** Workload Abbreviation *)
@@ -152,13 +153,13 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
   (** ** Length of Busy Interval *)
 
   (** The next step is to establish a bound on the maximum busy-window
-      length, which aRTA requires to be given. *)
+      length, which aRSA requires to be given. *)
 
   (** To this end, let [L] be any positive fixed point of the
-      busy-interval recurrence. As the
-      [busy_intervals_are_bounded_rs_fp] lemma shows, under [FP]
-      scheduling, this is sufficient to guarantee that all busy
-      intervals are bounded by [L]. *)
+      busy-interval recurrence. As the lemma
+      [busy_intervals_are_bounded_rs_fp] shows, under [FP] scheduling,
+      this is sufficient to guarantee that all busy intervals are
+      bounded by [L]. *)
   Variable L : duration.
   Hypothesis H_L_positive : 0 < L.
   Hypothesis H_fixed_point : total_hep_rbf L <= SBF L.
@@ -166,13 +167,12 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
   (** ** Response-Time Bound *)
 
   (** Having established all necessary preliminaries, it is finally
-      time to state the claimed response-time bound [R].
+      time to state the claimed response-time bound [R]. *)
 
-      A value [R] is a response-time bound if, for any given offset
+  (** A value [R] is a response-time bound if, for any given offset
       [A] in the search space, the response-time bound recurrence has
       a solution [F] not exceeding [R]. *)
-  Variable R : duration.
-  Hypothesis H_R_is_maximum :
+  Definition rta_recurrence_solution R :=
     forall (A : duration),
       is_in_search_space tsk L A ->
       exists (F : duration),
@@ -185,9 +185,11 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
       fully-preemptive fixed-priority scheduling with arbitrary supply
       restrictions.  *)
   Theorem uniprocessor_response_time_bound_fully_preemptive_fp :
-    task_response_time_bound arr_seq sched tsk R.
+    forall (R : duration),
+      rta_recurrence_solution R ->
+      task_response_time_bound arr_seq sched tsk R.
   Proof.
-    move=> js ARRs TSKs.
+    move=> R SOL js ARRs TSKs.
     have BLOCK: forall tsk , blocking_bound ts tsk = 0.
     { by move=> tsk2; rewrite /blocking_bound /parameters.task_max_nonpreemptive_segment
                  /fully_preemptive_task_model subnn big1_eq. }
@@ -206,7 +208,7 @@ Section RTAforFullyPreemptiveFPModelwithArrivalCurves.
       + by apply athep_workload_le_total_ohep_rbf.
       + apply: service_inversion_is_bounded => // => jo t1 t2 ARRo TSKo BUSYo.
         by unshelve rewrite (leqRW (nonpreemptive_segments_bounded_by_blocking _ _ _ _ _ _ _ _ _)) => //.
-    - move => A SP; move: (H_R_is_maximum A) => [].
+    - move => A SP; move: (SOL A) => [].
       + apply: search_space_sub => //; apply: search_space_switch_IBF; last by exact: SP.
         by move=> A1 Δ1; rewrite //= BLOCK.
       + move => F [/andP [_ LE] FIX]; exists F; split => //.