**Theorem 5.** *A secondary block* B *consisting of compact L-preschedules is compact.*

**Proof.** If the time interval of every preschedule *PreS*(*K*) from block B extends up to time *ψL*(*K*) and it contains no gap then the secondary block B is clearly compact. Suppose there is preschedule *PreS*(*K*) from block B that contains a gap and/or completes before time *ψL*(*K*). First, we observe that no extra job can be included within preschedule *PreS*(*K*) to obtain another *L*-preschedule with an extended time interval and/or with less total gap length. Indeed, let *x* , *px* < *px*, be a shortest available x-job from set ∈ *J*−(*x*). By PROCEDURE DEF, schedule *PreS*(*K*, +*x* ) is not a feasible *L*-preschedule for kernel *K* (as otherwise PROCEDURE DEF would include job *x* in preschedule *PreS*(*K*) at Pass 2). Thus, job *x* may only feasibly be included in preschedule *PreS*(*K*) by removing a longer job *x* from that preschedule. However, such a rearrangement may, at most, fill in the former execution interval of job *x* due to the above made observation and Lemma 6.

To prove the lemma, now it clearly suffices to show that nothing is to be gained by a job rearrangement in preschedule *PreS*(*K*) that involves, besides the jobs from sets *E*(*K*, *L*) and *EP*(*K*, *L*), the jobs from a preschedule preceding preschedule *PreS*(*K*).

Let *PreS* (*K*) be an arbitrary *L*-preschedule for kernel *K* (one respecting the current threshold *Lδ*). Without loss of generality, assume preschedules *PreS*(*K*) and *PreS* (*K*) start at the same time, whereas none of them may complete after time *ψL*(*K*) (Equation (12)). Let *W* and *Z*, respectively, be the sets of integer numbers, the processing times of jobs in the current preschedule *PreS*(*K*) ∈ <sup>Σ</sup>C(*δ*,*K*) and in preschedule *PreS* (*K*), respectively (here, we assume that sets *W* and *Z* consist of mutually divisible integer numbers, possibly with some repetitions).

Similar to what is done in Lemma 10 and Theorem 4, we discount the same numbers from sets *W* and *Z* and the numbers from one set which sum up to another number from the other set (taking a combination with the longest possible jobs). Note that both sets are reduced by the same amount (a sum of powers of 2). Denote by *W* and *Z* the resultant sets.

If *p*(*W* ) ≥ *p*(*Z* ) then the total gap length in preschedule *PreS*(*K*) cannot be more than that in preschedule *PreS* (*K*), and the theorem follows if the condition holds for all preschedules in block B.

Otherwise, suppose *p*(*W* ) < *p*(*Z* ). By the definition of the sets *W* and *Z* and the store of kernel *K* (Equation (13)), *p*(*Z* ) − *p*(*W* ) = *p*(*Z*) − *p*(*W*) ≤ *ST*(*K*) (see Theorem 4) and the preschedule for kernel *K* consisting of the jobs associated with the set of processing times {*W* \ *W* } ∪ *Z* will have the same total gap length as preschedule *PreS* (*K*) (the substitution of the jobs corresponding to set *W* by those from set *Z* would result in a preschedule with the same total gap length as that in preschedule *PreS* (*K*)). By the construction of preschedule *PreS*(*K*) at Phase 1, no job *x* with processing time from set *Z* which could have been feasibly included within preschedule *PreS*(*K*) was available during the construction of that preschedule. Hence, every such job *x* should have been already scheduled in a preschedule *PreS*(*K* ) preceding preschedule *PreS*(*K*) in block B. By rescheduling job *x* from preschedule *PreS*(*K* ) to preschedule *PreS*(*K*), the total gap length in the newly created preschedule of kernel *K* will be reduced by *px*, but a new gap of the same length will occur in the resultant new preschedule of kernel *K* as there is no other suitable job available (otherwise, it would have been included in preschedule *PreS*(*K*)). Hence, the total gap length in block B will remain the same. Thus, no matter how the jobs are redistributed among the preschedules from block B, the total length of the remaining gaps in that block will remain the same. The lemma is proved.
