]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/procedural/Coq/Logic/Diaconescu.mma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / procedural / Coq / Logic / Diaconescu.mma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "Coq.ma".
18
19 (*#***********************************************************************)
20
21 (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *)
22
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
24
25 (*   \VV/  **************************************************************)
26
27 (*    //   *      This file is distributed under the terms of the       *)
28
29 (*         *       GNU Lesser General Public License Version 2.1        *)
30
31 (*#***********************************************************************)
32
33 (*i $Id: Diaconescu.v,v 1.5.2.3 2004/08/01 09:36:44 herbelin Exp $ i*)
34
35 (*#* R. Diaconescu [Diaconescu] showed that the Axiom of Choice in Set Theory
36    entails Excluded-Middle; S. Lacas and B. Werner [LacasWerner]
37    adapted the proof to show that the axiom of choice in equivalence
38    classes entails Excluded-Middle in Type Theory.
39
40    This is an adaptatation of the proof by Hugo Herbelin to show that
41    the relational form of the Axiom of Choice + Extensionality for
42    predicates entails Excluded-Middle
43
44    [Diaconescu] R. Diaconescu, Axiom of Choice and Complementation, in
45    Proceedings of AMS, vol 51, pp 176-178, 1975.
46
47    [LacasWerner] S. Lacas, B Werner, Which Choices imply the excluded middle?,
48    preprint, 1999.
49
50 *)
51
52 (* UNEXPORTED
53 Section PredExt_GuardRelChoice_imp_EM
54 *)
55
56 (*#* The axiom of extensionality for predicates *)
57
58 inline procedural "cic:/Coq/Logic/Diaconescu/PredicateExtensionality.con" as definition.
59
60 (*#* From predicate extensionality we get propositional extensionality
61    hence proof-irrelevance *)
62
63 include "Logic/ClassicalFacts.ma".
64
65 (* UNEXPORTED
66 cic:/Coq/Logic/Diaconescu/PredExt_GuardRelChoice_imp_EM/pred_extensionality.var
67 *)
68
69 inline procedural "cic:/Coq/Logic/Diaconescu/prop_ext.con" as lemma.
70
71 inline procedural "cic:/Coq/Logic/Diaconescu/proof_irrel.con" as lemma.
72
73 (*#* From proof-irrelevance and relational choice, we get guarded
74    relational choice *)
75
76 include "Logic/ChoiceFacts.ma".
77
78 (* UNEXPORTED
79 cic:/Coq/Logic/Diaconescu/PredExt_GuardRelChoice_imp_EM/rel_choice.var
80 *)
81
82 inline procedural "cic:/Coq/Logic/Diaconescu/guarded_rel_choice.con" as lemma.
83
84 (*#* The form of choice we need: there is a functional relation which chooses
85     an element in any non empty subset of bool *)
86
87 include "Bool/Bool.ma".
88
89 inline procedural "cic:/Coq/Logic/Diaconescu/AC.con" as lemma.
90
91 (*#* The proof of the excluded middle *)
92
93 (*#* Remark: P could have been in Set or Type *)
94
95 inline procedural "cic:/Coq/Logic/Diaconescu/pred_ext_and_rel_choice_imp_EM.con" as theorem.
96
97 (* UNEXPORTED
98 End PredExt_GuardRelChoice_imp_EM
99 *)
100