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 isin1_dec:forall(l:list)(z:dart),
{isin1 l z} + {~ isin1 l z}.