Section sinc_decidable.
Variable (P : nat -> Prop)
(f : nat -> nat)
(Hf : forall n, f n < f (S n))
(HP : forall n, P n <-> exists k, n = f k).
Let f_mono x y : x <= y -> f x <= f y.
Let f_smono x y : x < y -> f x < f y.
Let f_ge_n n : n <= f n.
Let unbounded n : exists k, n <= k /\ P k.
Let f := fix f n := match n with
| 0   => proj1_sig (next 0)
| S n => proj1_sig (next (S (f n)))
end.
Let f_sinc n : f n < f (S n).
Let f_select x : { n | f n <= x < f (S n) } + { x < f 0 }.
Let f_P n : P n <-> exists k, n = f k.

Theorem decidable_sinc : { f | (forall n, f n < f (S n))
/\ (forall n, P n <-> exists k, n = f k) }.