Module L.
Include Coq.Lists.List.
Definition null {A : Type} (l : list A) : bool :=
match l with
| L.nil => true
| L.cons _ _ => false
end.
#[global] Hint Rewrite null_spec in_map_iff in_app_iff : simplication_hints.
#[global] Hint Rewrite in_remove_iff : simplication_hints.
Fixpoint mk_edge_seq {V : Type} (v : V) (vs : list V) : list (V * V) :=
match vs with
| [] => []
| v' :: vs' => (v, v') :: mk_edge_seq v' vs'
end.

Lemma no_dup_mk_edge_seq {V : Type} (v : V) (vs : list V)
(NO_DUP : NoDup vs)
: NoDup (mk_edge_seq v vs).