diff --git a/Makefile b/Makefile
index f00672eacc07f5cff53eeff0d55ff11bce98b08f..ed72ed36bfe05f2190609a728b737fdf4b860565 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@
 
 #
 # This Makefile was generated by the command line :
-# coq_makefile -f _CoqProject ./util/fixedpoint.v ./util/ssromega.v ./util/bigcat.v ./util/nat.v ./util/notation.v ./util/list.v ./util/powerset.v ./util/all.v ./util/sorting.v ./util/tactics.v ./util/bigord.v ./util/exists.v ./util/induction.v ./util/sum.v ./util/divround.v ./util/counting.v ./implementation/basic/bertogna_edf_example.v ./implementation/basic/task.v ./implementation/basic/schedule.v ./implementation/basic/job.v ./implementation/basic/arrival_sequence.v ./implementation/jitter/bertogna_edf_example.v ./implementation/jitter/task.v ./implementation/jitter/schedule.v ./implementation/jitter/job.v ./implementation/jitter/arrival_sequence.v ./analysis/basic/bertogna_fp_theory.v ./analysis/basic/interference_bound_edf.v ./analysis/basic/interference_bound_fp.v ./analysis/basic/interference_bound.v ./analysis/basic/bertogna_edf_comp.v ./analysis/basic/bertogna_fp_comp.v ./analysis/basic/bertogna_edf_theory.v ./analysis/basic/workload_bound.v ./analysis/parallel/bertogna_fp_theory.v ./analysis/parallel/interference_bound_edf.v ./analysis/parallel/interference_bound_fp.v ./analysis/parallel/interference_bound.v ./analysis/parallel/bertogna_edf_comp.v ./analysis/parallel/bertogna_fp_comp.v ./analysis/parallel/bertogna_edf_theory.v ./analysis/parallel/workload_bound.v ./analysis/jitter/bertogna_fp_theory.v ./analysis/jitter/interference_bound_edf.v ./analysis/jitter/interference_bound_fp.v ./analysis/jitter/interference_bound.v ./analysis/jitter/bertogna_edf_comp.v ./analysis/jitter/bertogna_fp_comp.v ./analysis/jitter/bertogna_edf_theory.v ./analysis/jitter/workload_bound.v ./model/basic/time.v ./model/basic/schedulability.v ./model/basic/task.v ./model/basic/task_arrival.v ./model/basic/platform.v ./model/basic/schedule.v ./model/basic/priority.v ./model/basic/interference_edf.v ./model/basic/interference.v ./model/basic/workload.v ./model/basic/job.v ./model/basic/arrival_sequence.v ./model/basic/response_time.v ./model/basic/platform_fp.v ./model/jitter/time.v ./model/jitter/schedulability.v ./model/jitter/task.v ./model/jitter/task_arrival.v ./model/jitter/platform.v ./model/jitter/schedule.v ./model/jitter/priority.v ./model/jitter/interference_edf.v ./model/jitter/interference.v ./model/jitter/workload.v ./model/jitter/job.v ./model/jitter/arrival_sequence.v ./model/jitter/response_time.v ./model/jitter/platform_fp.v -o Makefile 
+# coq_makefile -f _CoqProject ./util/fixedpoint.v ./util/ssromega.v ./util/bigcat.v ./util/nat.v ./util/seqset.v ./util/notation.v ./util/list.v ./util/powerset.v ./util/all.v ./util/sorting.v ./util/tactics.v ./util/bigord.v ./util/exists.v ./util/induction.v ./util/sum.v ./util/divround.v ./util/counting.v ./implementation/basic/bertogna_edf_example.v ./implementation/basic/task.v ./implementation/basic/schedule.v ./implementation/basic/job.v ./implementation/basic/arrival_sequence.v ./implementation/jitter/bertogna_edf_example.v ./implementation/jitter/task.v ./implementation/jitter/schedule.v ./implementation/jitter/job.v ./implementation/jitter/arrival_sequence.v ./analysis/basic/bertogna_fp_theory.v ./analysis/basic/interference_bound_edf.v ./analysis/basic/interference_bound_fp.v ./analysis/basic/interference_bound.v ./analysis/basic/bertogna_edf_comp.v ./analysis/basic/bertogna_fp_comp.v ./analysis/basic/bertogna_edf_theory.v ./analysis/basic/workload_bound.v ./analysis/parallel/bertogna_fp_theory.v ./analysis/parallel/interference_bound_edf.v ./analysis/parallel/interference_bound_fp.v ./analysis/parallel/interference_bound.v ./analysis/parallel/bertogna_edf_comp.v ./analysis/parallel/bertogna_fp_comp.v ./analysis/parallel/bertogna_edf_theory.v ./analysis/parallel/workload_bound.v ./analysis/jitter/bertogna_fp_theory.v ./analysis/jitter/interference_bound_edf.v ./analysis/jitter/interference_bound_fp.v ./analysis/jitter/interference_bound.v ./analysis/jitter/bertogna_edf_comp.v ./analysis/jitter/bertogna_fp_comp.v ./analysis/jitter/bertogna_edf_theory.v ./analysis/jitter/workload_bound.v ./model/basic/time.v ./model/basic/schedulability.v ./model/basic/task.v ./model/basic/task_arrival.v ./model/basic/platform.v ./model/basic/schedule.v ./model/basic/priority.v ./model/basic/interference_edf.v ./model/basic/interference.v ./model/basic/workload.v ./model/basic/job.v ./model/basic/arrival_sequence.v ./model/basic/response_time.v ./model/basic/platform_fp.v ./model/jitter/time.v ./model/jitter/schedulability.v ./model/jitter/task.v ./model/jitter/task_arrival.v ./model/jitter/platform.v ./model/jitter/schedule.v ./model/jitter/priority.v ./model/jitter/interference_edf.v ./model/jitter/interference.v ./model/jitter/workload.v ./model/jitter/job.v ./model/jitter/arrival_sequence.v ./model/jitter/response_time.v ./model/jitter/platform_fp.v -o Makefile 
 #
 
 .DEFAULT_GOAL := all
@@ -65,7 +65,7 @@ OPT?=
 COQDEP?="$(COQBIN)coqdep" -c
 COQFLAGS?=-q $(OPT) $(COQLIBS) $(OTHERFLAGS) $(COQ_XML)
 COQCHKFLAGS?=-silent -o
-COQDOCFLAGS?=-interpolate -utf8
+COQDOCFLAGS?=-interpolate -utf8 --parse-comments --external https://math-comp.github.io/math-comp/htmldoc/ mathcomp
 COQC?=$(TIMER) "$(COQBIN)coqc"
 GALLINA?="$(COQBIN)gallina"
 COQDOC?="$(COQBIN)coqdoc"
@@ -98,6 +98,7 @@ VFILES:=util/fixedpoint.v\
   util/ssromega.v\
   util/bigcat.v\
   util/nat.v\
+  util/seqset.v\
   util/notation.v\
   util/list.v\
   util/powerset.v\
diff --git a/util/all.v b/util/all.v
index 5ee67b8a496cdb36670df403b243de2baf0747b5..886d33c93b778aa8ea39493e5a314d9f0db1f61b 100644
--- a/util/all.v
+++ b/util/all.v
@@ -1,3 +1,4 @@
+Add LoadPath ".." as rt.
 
 Require Export rt.util.tactics.
 Require Export rt.util.notation.
@@ -13,4 +14,5 @@ Require Export rt.util.nat.
 Require Export rt.util.powerset.
 Require Export rt.util.sorting.
 Require Export rt.util.ssromega.
-Require Export rt.util.sum.
\ No newline at end of file
+Require Export rt.util.sum.
+Require Export rt.util.seqset.
\ No newline at end of file
diff --git a/util/seqset.v b/util/seqset.v
new file mode 100644
index 0000000000000000000000000000000000000000..fb734c841989a720f968347ea170812c64e67ff8
--- /dev/null
+++ b/util/seqset.v
@@ -0,0 +1,49 @@
+From mathcomp Require Import ssreflect ssrbool ssrnat eqtype seq fintype.
+
+Section SeqSet.
+
+  (* Let T be any type with decidable equality. *)
+  Context {T: eqType}.
+
+  (* We define a set as a sequence that has no duplicates. *)
+  Record set :=
+  {
+    _set_seq :> seq T ;
+    _ : uniq _set_seq (* no duplicates *)
+  }.
+
+  (* Now we add the ssreflect boilerplate code. *)
+  Canonical Structure setSubType := [subType for _set_seq].
+  Definition set_eqMixin := [eqMixin of set by <:].
+  Canonical Structure set_eqType := EqType set set_eqMixin.
+  Canonical Structure mem_set_predType := mkPredType (fun (l : set) => mem_seq (_set_seq l)).
+  Definition set_of of phant T := set.
+
+End SeqSet.
+
+Notation " {set R } " := (set_of (Phant R)).
+
+Section Lemmas.
+
+  Context {T: eqType}.
+  Variable s: {set T}.
+
+  Lemma set_uniq : uniq s.
+  Proof.
+    by destruct s.
+  Qed.
+
+End Lemmas.
+
+Section LemmasFinType.
+  
+  Context {T: finType}.
+  Variable s: {set T}.
+
+  Lemma set_card : #|s| = size s.
+  Proof.
+    have UNIQ: uniq s by destruct s.
+    by move: UNIQ => /card_uniqP ->.
+  Qed.
+  
+End LemmasFinType.
\ No newline at end of file