aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories/Logic/ClassicalUniqueChoice.v
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-05-28 11:49:15 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-05-28 11:49:15 +0000
commit9a890c748ed55e9b1ccff37b41ddcbfd371cf727 (patch)
tree9164b5da6c6a1b946cf32e53ccc0aeeb4ffcfb32 /theories/Logic/ClassicalUniqueChoice.v
parent298961e81377e9b61410b4ef56b1d12b2b74965f (diff)
Generalized the formulation of classic_set in propositional contexts
(consequence of classical unique choice) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13030 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Logic/ClassicalUniqueChoice.v')
-rw-r--r--theories/Logic/ClassicalUniqueChoice.v13
1 files changed, 11 insertions, 2 deletions
diff --git a/theories/Logic/ClassicalUniqueChoice.v b/theories/Logic/ClassicalUniqueChoice.v
index 67b853be9..6389e447f 100644
--- a/theories/Logic/ClassicalUniqueChoice.v
+++ b/theories/Logic/ClassicalUniqueChoice.v
@@ -46,9 +46,10 @@ Qed.
Require Import Setoid.
-Theorem classic_set : ((forall P:Prop, {P} + {~ P}) -> False) -> False.
+Theorem classic_set_in_prop_context :
+ forall C:Prop, ((forall P:Prop, {P} + {~ P}) -> C) -> C.
Proof.
-intro HnotEM.
+intros C HnotEM.
set (R := fun A b => A /\ true = b \/ ~ A /\ false = b).
assert (H : exists f : Prop -> bool, (forall A:Prop, R A (f A))).
apply unique_choice.
@@ -80,3 +81,11 @@ destruct (f P).
assumption.
Qed.
+Corollary not_not_classic_set :
+ ((forall P:Prop, {P} + {~ P}) -> False) -> False.
+Proof.
+apply classic_set_in_prop_context.
+Qed.
+
+(* Compatibility *)
+Notation classic_set := not_not_classic_set (only parsing).