End cond_Ropp.
(** LPO taken from Coquelicot *)

(* Specifications: *)
Theorem LPO_min :
forall P : nat -> Prop, (forall n, P n \/ ~ P n) ->
{n : nat | P n /\ forall i, (i < n)%nat -> ~ P i} + {forall n, ~ P n}.
Theorem LPO :
forall P : nat -> Prop, (forall n, P n \/ ~ P n) ->
{n : nat | P n} + {forall n, ~ P n}.
Lemma LPO_Z : forall P : Z -> Prop, (forall n, P n \/ ~P n) ->
{n : Z| P n} + {forall n, ~ P n}.
Theorem LPO_min :
forall P : nat -> Prop, (forall n, P n \/ ~ P n) ->
{n : nat | P n /\ forall i, (i < n)%nat -> ~ P i} + {forall n, ~ P n}.
Theorem LPO :
forall P : nat -> Prop, (forall n, P n \/ ~ P n) ->
{n : nat | P n} + {forall n, ~ P n}.
Lemma LPO_Z : forall P : Z -> Prop, (forall n, P n \/ ~P n) ->
{n : Z| P n} + {forall n, ~ P n}.