diff options
| author | Maxime Dénès | 2017-03-09 14:13:19 +0100 |
|---|---|---|
| committer | Maxime Dénès | 2017-03-09 14:16:21 +0100 |
| commit | 76fc1698fbb6b523c5c0d15f0b15a2d035649496 (patch) | |
| tree | 9b214fcb0e8a6c71514c46409a4655b9e53d87e0 /theories/Logic/ExtensionalFunctionRepresentative.v | |
| parent | b5e6c189f378815c2cfc350924d225d7bd1287d4 (diff) | |
| parent | 9133d6faece4feb675fdc9c66cebcb2bba9246a9 (diff) | |
Merge PR#318: Providing a file in the Logic library to work with extensional choice
Diffstat (limited to 'theories/Logic/ExtensionalFunctionRepresentative.v')
| -rw-r--r-- | theories/Logic/ExtensionalFunctionRepresentative.v | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/theories/Logic/ExtensionalFunctionRepresentative.v b/theories/Logic/ExtensionalFunctionRepresentative.v new file mode 100644 index 0000000000..a9da68e165 --- /dev/null +++ b/theories/Logic/ExtensionalFunctionRepresentative.v @@ -0,0 +1,24 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + +(** This module states a limited form axiom of functional + extensionality which selects a canonical representative in each + class of extensional functions *) + +(** Its main interest is that it is the needed ingredient to provide + axiom of choice on setoids (a.k.a. axiom of extensional choice) + when combined with classical logic and axiom of (intensonal) + choice *) + +(** It provides extensionality of functions while still supporting (a + priori) an intensional interpretation of equality *) + +Axiom extensional_function_representative : + forall A B, exists repr, forall (f : A -> B), + (forall x, f x = repr f x) /\ + (forall g, (forall x, f x = g x) -> repr f = repr g). |
