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}.