include "Coq.ma".
-(*#**********************************************************************)
+(*#***********************************************************************)
-(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA-Rocquencourt & LRI-CNRS-Orsay *)
+(* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
-(* \VV/ *************************************************************)
+(* \VV/ **************************************************************)
-(* // * This file is distributed under the terms of the *)
+(* // * This file is distributed under the terms of the *)
-(* * GNU Lesser General Public License Version 2.1 *)
+(* * GNU Lesser General Public License Version 2.1 *)
-(*#**********************************************************************)
+(*#***********************************************************************)
-(*i $Id: Diaconescu.v,v 1.5 2003/12/24 10:27:05 barras Exp $ i*)
+(*i $Id: Diaconescu.v,v 1.5.2.3 2004/08/01 09:36:44 herbelin Exp $ i*)
-(* R. Diaconescu [Diaconescu] showed that the Axiom of Choice in Set Theory
+(*#* R. Diaconescu [Diaconescu] showed that the Axiom of Choice in Set Theory
entails Excluded-Middle; S. Lacas and B. Werner [LacasWerner]
adapted the proof to show that the axiom of choice in equivalence
classes entails Excluded-Middle in Type Theory.
Section PredExt_GuardRelChoice_imp_EM
*)
-(* The axiom of extensionality for predicates *)
+(*#* The axiom of extensionality for predicates *)
inline procedural "cic:/Coq/Logic/Diaconescu/PredicateExtensionality.con" as definition.
-(* From predicate extensionality we get propositional extensionality
+(*#* From predicate extensionality we get propositional extensionality
hence proof-irrelevance *)
include "Logic/ClassicalFacts.ma".
inline procedural "cic:/Coq/Logic/Diaconescu/proof_irrel.con" as lemma.
-(* From proof-irrelevance and relational choice, we get guarded
+(*#* From proof-irrelevance and relational choice, we get guarded
relational choice *)
include "Logic/ChoiceFacts.ma".
inline procedural "cic:/Coq/Logic/Diaconescu/guarded_rel_choice.con" as lemma.
-(* The form of choice we need: there is a functional relation which chooses
- an element in any non empty subset of bool *)
+(*#* The form of choice we need: there is a functional relation which chooses
+ an element in any non empty subset of bool *)
include "Bool/Bool.ma".
inline procedural "cic:/Coq/Logic/Diaconescu/AC.con" as lemma.
-(* The proof of the excluded middle *)
+(*#* The proof of the excluded middle *)
-(* Remark: P could have been in Set or Type *)
+(*#* Remark: P could have been in Set or Type *)
inline procedural "cic:/Coq/Logic/Diaconescu/pred_ext_and_rel_choice_imp_EM.con" as theorem.