Fixpoint isin1(l:list)(z:dart){struct l}:Prop:=
  match l with
     lam => False
   | cons x x' l0 => x = z \/ isin1 l0 z 
  end.Fixpoint isin2(l:list)(z:dart){struct l}:Prop:=
  match l with
     lam => False
   | cons x x' l0 => x' = z \/ isin2 l0 z 
  end.

Lemma isin2_dec:forall(l:list)(z:dart), {isin2 l z} + {~ isin2 l z}.