`{Univalence} (f : Type <~> Type) (A : Type) (a : merely A) (eu : f A = Empty) : ExcludedMiddle_type. Proof. apply DNE_to_LEM, DNE_from_allneg; intros P ?. exists (f (P * A)); split. - intros p. assert (q := fst (equiv_hprop_idprod A P a) p). apply (ap f) in q. rewrite eu in q. rewrite q; auto. - intros q. apply equiv_to_empty in q. apply path_universe_uncurried in q. rewrite <- eu in q. apply ((ap f)^-1) in q. exact (snd (equiv_hprop_idprod A P a) q). Defined.
Require Import Basics Types. Require Import HoTT.Truncations. Require Import Universes.BAut Universes.Rigid. Require Import ExcludedMiddle.