(*==========================================================
           LISTS AND RINGS (OF DOUBLE-LINKS)
==========================================================*)

(* dart*dart LISTS : *)

Inductive list:Set :=
  lam : list | cons : dart->dart->list->list.(*==========================================================
           LISTS AND RINGS (OF DOUBLE-LINKS)
==========================================================*)

(* dart*dart LISTS : *)

Inductive list:Set :=
  lam : list | cons : dart->dart->list->list.(*==========================================================
           LISTS AND RINGS (OF DOUBLE-LINKS)
==========================================================*)

(* dart*dart LISTS : *)

Inductive list:Set :=
  lam : list | cons : dart->dart->list->list.Definition emptyl(l:list):Prop:=
  match l with
     lam => True
   | _ => False
  end.

(* Specifications: *)
Lemma emptyl_dec:forall l:list, {emptyl l}+{~emptyl l}.