Martin Escardo 23 February 2023 The pre-univalence axiom, first suggested by Evan Cavallo in November 2017 [1] and then again by Peter Lumsdaine in August 2022 verbally to me. [1] https://groups.google.com/g/homotopytypetheory/c/bKti7krHM-c/m/vxRU3FwADQAJ The preunivalence axiom is a common generalization of the univalence axiom and the K axiom. The strong preunivalence axiom is a variant that was stated by Fredrik Bakke in the agda-unimath in February 2025 [2]. [2] https://unimath.github.io/agda-unimath/foundation.strong-preunivalence.html \begin{code} {-# OPTIONS --safe --without-K #-} module UF.PreUnivalence where open import MLTT.Spartan open import UF.Base open import UF.Embeddings open import UF.Equiv open import UF.Equiv-FunExt open import UF.EquivalenceExamples open import UF.FunExt open import UF.Retracts open import UF.Sets open import UF.Subsingletons open import UF.Univalence is-preunivalent : β π€ β π€ βΊ Μ is-preunivalent π€ = (X Y : π€ Μ ) β is-embedding (idtoeq X Y) Preunivalence : π€Ο Preunivalence = (π€ : Universe) β is-preunivalent π€ univalence-gives-preunivalence : is-univalent π€ β is-preunivalent π€ univalence-gives-preunivalence ua X Y = equivs-are-embeddings (idtoeq X Y) (ua X Y) Univalence-gives-Preunivalence : Univalence β Preunivalence Univalence-gives-Preunivalence ua π€ = univalence-gives-preunivalence (ua π€) K-gives-preunivalence : K-axiom π€ β K-axiom (π€ βΊ) β is-preunivalent π€ K-gives-preunivalence {π€} k k' X Y e (p , _) (p' , _) = to-subtype-οΌ (Ξ» _ β k (X β Y)) (k' (π€ Μ )p p') K-gives-Preunivalence : K-Axiom β Preunivalence K-gives-Preunivalence k π€ = K-gives-preunivalence (k π€) (k (π€ βΊ)) \end{code} Added by Evan Cavallo on 13th March 2025. The strong preunivalence axiom and the fact that it implies the preunivalence axiom are due to Fredrik Bakke. \begin{code} is-strong-preunivalent : β π€ π₯ β Set (π€ βΊ β π₯ βΊ) is-strong-preunivalent π€ π₯ = (X : π€ Μ ) β is-set (Ξ£ Y κ π₯ Μ , X β Y) strong-preunivalence-gives-preunivalence : is-strong-preunivalent π€ π€ β is-preunivalent π€ strong-preunivalence-gives-preunivalence spua X = NatΞ£-is-embedding-converse (X οΌ_) (X β_) (idtoeq X) (maps-of-props-into-sets-are-embeddings (NatΞ£ (idtoeq X)) (singleton-types-are-props X) (spua X)) funext-and-preunivalence-give-strong-preunivalence : funext π€ π€ β funext π₯ π€ β funext π₯ π₯ β is-preunivalent π₯ β is-strong-preunivalent π€ π₯ funext-and-preunivalence-give-strong-preunivalence {π€} {π₯} feuu fevu fevv preua X {Y , Ξ±} {Y' , Ξ±'} = retract-of-prop (to-Ξ£-οΌ , from-Ξ£-οΌ , tofrom-Ξ£-οΌ) (equiv-to-prop (Ξ£-cong Ξ» p β (_ , β-is-equiv-left (transport-eq p)) β shift-equiv Ξ± (idtoeq _ _ p) Ξ±') (preua _ _ (β-sym Ξ± β Ξ±'))) where transport-eq : (p : Y οΌ Y') β Ξ± β idtoeq Y Y' p οΌ transport (X β_) p Ξ± transport-eq refl = β-refl-right' fevu fevv feuu Ξ± shift-equiv : {A : π€ Μ } {B : π₯ Μ } {C : π₯ Μ } β (e : A β B) (e' : B β C) (e'' : A β C) β (e β e' οΌ e'') β (e' οΌ β-sym e β e'') shift-equiv e e' e'' = (e β e' οΌ e'') ββ¨ _ , ap-is-equiv (β-sym e β_) (prβ q) β© (β-sym e β (e β e') οΌ β-sym e β e'') ββ¨ οΌ-cong-l _ _ (β-assoc' fevv fevv fevv (β-sym e) e e') β© ((β-sym e β e) β e' οΌ β-sym e β e'') ββ¨ οΌ-cong-l _ _ (ap (_β e') (β-sym-left-inverse' fevv e)) β© (β-refl _ β e' οΌ β-sym e β e'') ββ¨ οΌ-cong-l _ _ (β-refl-left' fevv fevv fevv e') β© (e' οΌ β-sym e β e'') β where q = β-cong-left' fevu fevv feuu fevv fevv e \end{code}