fact: Fixpoint restrict (n: nat) (l: list A) {struct l}: list A := match l with nil => nil | a :: l1 => match n with O => o :: (restrict n l1) | S n1 => a :: (restrict n1 l1) end end.
imports: List ListAux UList OrderedList