`{Univalence} {A B : Type} (f : A -> B) {i : IsSurjection (Trunc_functor 0 f)} {ii : forall x y, IsEquiv (@ap _ _ f x y)} : IsEquiv f. Proof. apply (equiv_isequiv_ap_isembedding f)^-1 in ii. srapply isequiv_surj_emb. srapply BuildIsSurjection. cbn; intro b. pose proof (@center _ (i (tr b))) as p. revert p. apply Trunc_functor. apply sig_ind. srapply Trunc_ind. intros a p. apply (equiv_path_Tr _ _)^-1 in p. strip_truncations. exists a. exact p. Defined.
Require Import Basics Types. Require Import Pointed. Require Import WildCat.Core HFiber. Require Import Truncations. Require Import Algebra.Groups.Group. Require Import Homotopy.HomotopyGroup.