Release dates
Lax434175.ReleaseDates · concepts/Lax434175/ReleaseDates.lean · lax-434175
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Every job of every kernel has a release date , and no job may start before its release date. The release-date field has the values
- none: all release dates are ;
- release dates: arbitrary release dates;
- online: arbitrary release dates; the value records that the jobs become known only at their release dates. This concerns the algorithms that are admitted, not the instances and schedules, which are those of the value release dates.
The value none is a special case of the value release dates; the value online is comparable only with itself.
The number of distinct release dates is a parameter of every kernel.
Theorem. Over every kernel, the release-date field is sound.
Concept map
Lean source view on GitHub
| 1 | import Mathlib.Data.Fintype.Card |
| 2 | import Mathlib.Data.Finset.Image |
| 3 | import Lax434175.Modules |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Release dates |
| 8 | type: theorem |
| 9 | --- |
| 10 | Every job of every kernel has a release date , and no job may start |
| 11 | before its release date. The release-date field has the values |
| 12 | |
| 13 | - none: all release dates are ; |
| 14 | - release dates: arbitrary release dates; |
| 15 | - online: arbitrary release dates; the value records that the jobs become |
| 16 | known only at their release dates. This concerns the algorithms that are |
| 17 | admitted, not the instances and schedules, which are those of the value |
| 18 | release dates. |
| 19 | |
| 20 | The value none is a special case of the value release dates; the value |
| 21 | online is comparable only with itself. |
| 22 | |
| 23 | The number of distinct release dates is a parameter of every kernel. |
| 24 | |
| 25 | **Theorem.** Over every kernel, the release-date field is sound. |
| 26 | -/ |
| 27 | |
| 28 | namespace Lax434175.ReleaseDates |
| 29 | open Lax434175.Kernels Lax434175.Modules |
| 30 | |
| 31 | inductive Value |
| 32 | | none |
| 33 | | releaseDates |
| 34 | | online |
| 35 | deriving DecidableEq |
| 36 | |
| 37 | /-- The instances of a value. -/ |
| 38 | def Value.holds (K : Kernel) : Value → K.Inst → Prop |
| 39 | | .none, x => ∀ j, K.release x j = 0 |
| 40 | | .releaseDates, _ => True |
| 41 | | .online, _ => True |
| 42 | |
| 43 | def le : Value → Value → Bool |
| 44 | | .none, .releaseDates => true |
| 45 | | v, w => decide (v = w) |
| 46 | |
| 47 | /-- The release-date field over a kernel. -/ |
| 48 | def module (K : Kernel) : Module K where |
| 49 | Value := Value |
| 50 | Data _ _ := Unit |
| 51 | admits v x _ := v.holds K x |
| 52 | constraint _ x _ σ := ∀ j, (K.release x j : NNRat) ≤ K.start x σ j |
| 53 | le := le |
| 54 | embed _ _ _ := () |
| 55 | |
| 56 | /-- The number of distinct release dates. -/ |
| 57 | def distinct (K : Kernel) : K.Inst → ℕ := |
| 58 | fun x => (Finset.univ.image (K.release x)).card |
| 59 | |
| 60 | axiom sound (K : Kernel) : (module K).Sound |
| 61 | |
| 62 | end Lax434175.ReleaseDates |
| 63 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments