(************************************************************************)
(*         *      The Rocq Prover / The Rocq Development Team           *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)
(* This file is a renaming for V5.10.14b, Oct 1995, of file Classical.v introduced in Coq V5.8.3, June 1993 *)
(** Classical Predicate Logic on Type *)
Section Generic.
Variable U : Type.
(** de Morgan laws for quantifiers *)

(* Specifications: *)
Lemma not_all_not_ex :
forall P:U -> Prop, ~ (forall n:U, ~ P n) ->  exists n : U, P n.
Lemma not_all_ex_not :
forall P:U -> Prop, ~ (forall n:U, P n) ->  exists n : U, ~ P n.
Lemma not_ex_all_not :
forall P:U -> Prop, ~ (exists n : U, P n) -> forall n:U, ~ P n.
Lemma not_ex_not_all :
forall P:U -> Prop, ~ (exists n : U, ~ P n) -> forall n:U, P n.
Lemma ex_not_not_all :
forall P:U -> Prop, (exists n : U, ~ P n) -> ~ (forall n:U, P n).
Lemma all_not_not_ex :
forall P:U -> Prop, (forall n:U, ~ P n) -> ~ (exists n : U, P n).