Fact fin_reif n : (forall i, i < n -> exists x, R i x)
                 -> exists s, forall i (Hi : i < n), R i (s i Hi).Fact fin_reif_nat (R : nat -> nat -> Prop) n :
         (forall i, i < n -> ex (R i)) -> exists s, forall i, i < n -> R i (s i).

Theorem bounded_search m (P : nat -> Type) : (forall n, n < m -> P n + (P n -> False)) -> { n : nat & (n < m) * P n }%type + { forall n, n < m -> P n -> False }.