Fixpoint ad_in_list (a:ad) (l:list ad) {struct l} : bool :=
    match l with
    | nil => false
    | a' :: l' => orb (Neqb a a') (ad_in_list a l')
    end.Fixpoint ad_list_stutters (l:list ad) : bool :=
    match l with
    | nil => false
    | a :: l' => orb (ad_in_list a l') (ad_list_stutters l')
    end.

Lemma ad_in_list_forms_circuit : forall (x:ad) (l:list ad), ad_in_list x l = true -> {l1 : list ad & {l2 : list ad | l = l1 ++ x :: l2}}.