Library prosa.classic.model.arrival.basic.task
Require Import prosa.classic.model.time prosa.classic.util.all.
From mathcomp Require Import ssrnat ssrbool eqtype fintype seq.
Module SporadicTask.
Import Time.
Section BasicTask.
Context {Task: eqType}.
Variable task_cost: Task → time.
Variable task_period: Task → time.
Variable task_deadline: Task → time.
Section ValidParameters.
Variable tsk: Task.
Definition task_cost_positive := task_cost tsk > 0.
Definition task_period_positive := task_period tsk > 0.
Definition task_deadline_positive := task_deadline tsk > 0.
Definition task_cost_le_deadline := task_cost tsk ≤ task_deadline tsk.
Definition task_cost_le_period := task_cost tsk ≤ task_period tsk.
Definition is_valid_sporadic_task :=
task_cost_positive ∧ task_period_positive ∧ task_deadline_positive ∧
task_cost_le_deadline ∧ task_cost_le_period.
End ValidParameters.
End BasicTask.
End SporadicTask.
Module SporadicTaskset.
Import Time.
Export SporadicTask.
Section TasksetDefs.
Definition taskset_of (Task: eqType) := {set Task}.
Section TasksetProperties.
Context {Task: eqType}.
Variable task_cost: Task → time.
Variable task_period: Task → time.
Variable task_deadline: Task → time.
Let is_valid_task :=
is_valid_sporadic_task task_cost task_period task_deadline.
Variable ts: seq Task.
Definition valid_sporadic_taskset :=
∀ tsk,
tsk \in ts → is_valid_task tsk.
Definition implicit_deadline_model :=
∀ tsk,
tsk \in ts → task_deadline tsk = task_period tsk.
Definition constrained_deadline_model :=
∀ tsk,
tsk \in ts → task_deadline tsk ≤ task_period tsk.
Definition arbitrary_deadline_model := True.
End TasksetProperties.
End TasksetDefs.
End SporadicTaskset.
From mathcomp Require Import ssrnat ssrbool eqtype fintype seq.
Module SporadicTask.
Import Time.
Section BasicTask.
Context {Task: eqType}.
Variable task_cost: Task → time.
Variable task_period: Task → time.
Variable task_deadline: Task → time.
Section ValidParameters.
Variable tsk: Task.
Definition task_cost_positive := task_cost tsk > 0.
Definition task_period_positive := task_period tsk > 0.
Definition task_deadline_positive := task_deadline tsk > 0.
Definition task_cost_le_deadline := task_cost tsk ≤ task_deadline tsk.
Definition task_cost_le_period := task_cost tsk ≤ task_period tsk.
Definition is_valid_sporadic_task :=
task_cost_positive ∧ task_period_positive ∧ task_deadline_positive ∧
task_cost_le_deadline ∧ task_cost_le_period.
End ValidParameters.
End BasicTask.
End SporadicTask.
Module SporadicTaskset.
Import Time.
Export SporadicTask.
Section TasksetDefs.
Definition taskset_of (Task: eqType) := {set Task}.
Section TasksetProperties.
Context {Task: eqType}.
Variable task_cost: Task → time.
Variable task_period: Task → time.
Variable task_deadline: Task → time.
Let is_valid_task :=
is_valid_sporadic_task task_cost task_period task_deadline.
Variable ts: seq Task.
Definition valid_sporadic_taskset :=
∀ tsk,
tsk \in ts → is_valid_task tsk.
Definition implicit_deadline_model :=
∀ tsk,
tsk \in ts → task_deadline tsk = task_period tsk.
Definition constrained_deadline_model :=
∀ tsk,
tsk \in ts → task_deadline tsk ≤ task_period tsk.
Definition arbitrary_deadline_model := True.
End TasksetProperties.
End TasksetDefs.
End SporadicTaskset.