fact: Fixpoint make_partition_aux (f : nat -> nat) (n : nat) {struct n} : list (nat * nat) := match n with | O => nil (A:=nat * nat) | S n1 => match le_lt_dec (f n) n with | left _ => make_partition_aux f n1 | right _ => (n, f n) :: make_partition_aux f n1 end end.
imports: Coq(Div2 Even Wf_nat Arith ArithRing List) Bertrand(Bertrand)