Section PredExt_RelChoice_imp_EM.
(** The axiom of extensionality for predicates *)
Definition PredicateExtensionality :=
forall P Q:bool -> Prop, (forall b:bool, P b <-> Q b) -> P = Q.
(** From predicate extensionality we get propositional extensionality hence proof-irrelevance *)
Variable pred_extensionality : PredicateExtensionality.

Lemma proof_irrel : forall (A:Prop) (a1 a2:A), a1 = a2.