enable automatic arrival-model conversion
This commit makes it possible to transparently interpret periodic tasks as sporadic tasks, and sporadic tasks as tasks with an arrival curve, such that all proof obligations can satisfied by `rt_auto` and `rt_eauto`. Full example: ``` Require Import prosa.model.task.arrival.periodic. Require Import prosa.model.task.arrival.periodic_as_sporadic. Require Import prosa.model.task.arrival.sporadic_as_curve. Section AutoArrivalModelConversion. Context {Job : JobType} `{JobArrival Job}. Context {Task : TaskType} `{PeriodicModel Task} `{JobTask Job Task}. Variable ts : TaskSet Task. Variable arr_seq : arrival_sequence Job. Hypothesis H_consistent_arrivals: consistent_arrival_times arr_seq. Hypothesis H_uniq_arr_seq: arrival_sequence_uniq arr_seq. Hypothesis H_valid_periods : valid_periods ts. Hypothesis H_respects : taskset_respects_periodic_task_model arr_seq ts. (** 1. Interpret as sporadic: *) Goal valid_taskset_inter_arrival_times ts. Proof. by rt_auto. Qed. Goal taskset_respects_sporadic_task_model ts arr_seq. Proof. by rt_auto. Qed. (** 2. Interpret as an arrival curve. *) Goal valid_taskset_arrival_curve ts max_arrivals. Proof. by rt_auto. Qed. Goal taskset_respects_max_arrivals arr_seq ts. Proof. by rt_eauto. Qed. End AutoArrivalModelConversion. ```
Loading
Please register or sign in to comment