Definition sumlist := combinelist _ Int.add.Definition sumlist_Some:= combinelist _ Int.add.Definition sumlist_SomeInv:= combinelist_SomeInv _ Int.add.Definition sumlist_length:= combinelist_length _ Int.add.Definition sumlist_symm:= combinelist_symm _ Int.add Int.add_commut.Definition sumlist_char_nth:= combinelist_char_nth _ Int.add.Definition sumlist_char_Znth:= combinelist_char_Znth _ Int.add.Definition Snuffle20 x := bind (Snuffle 20 x) (fun y => sumlist y x).

(* Specifications: *)
Lemma Snuffle20_length s l: Snuffle20 s = Some l -> length s = 16%nat -> length l = 16%nat.