See Ordinals.Arithmetic for the definition of the unique ordinal structure on a proposition. We prove additional properties here that require several imports. \begin{code} {-# OPTIONS --safe --without-K #-} open import UF.Univalence module Ordinals.Propositions (ua : Univalence) where open import UF.FunExt open import UF.UA-FunExt private fe : FunExt fe = Univalence-gives-FunExt ua fe' : Fun-Ext fe' = Univalence-gives-Fun-Ext ua open import MLTT.Spartan open import Ordinals.Arithmetic fe open import Ordinals.Equivalence open import Ordinals.OrdinalOfOrdinals ua open import Ordinals.Type open import UF.Equiv open import UF.Subsingletons prop-ordinal-β΄ : {P : π€ Μ } {Q : π₯ Μ } (i : is-prop P) (j : is-prop Q) β (P β Q) β prop-ordinal P i β΄ prop-ordinal Q j prop-ordinal-β΄ _ _ f = f , (Ξ» _ _ β π-elim) , (Ξ» _ _ β π-elim) prop-ordinal-ββ : {P : π€ Μ } {Q : π₯ Μ } (i : is-prop P) (j : is-prop Q) β (P β Q) β (Q β P) β prop-ordinal P i ββ prop-ordinal Q j prop-ordinal-ββ {π€} {π₯} {P} {Q} i j f g = bisimilarity-gives-ordinal-equiv (prop-ordinal P i) (prop-ordinal Q j) (prop-ordinal-β΄ i j f) (prop-ordinal-β΄ j i g) prop-ordinal-οΌ : {P Q : π€ Μ } (i : is-prop P) (j : is-prop Q) β (P β Q) β (Q β P) β prop-ordinal P i οΌ prop-ordinal Q j prop-ordinal-οΌ {π€} {P} {Q} i j f g = eqtoidβ (ua π€) fe' (prop-ordinal P i) (prop-ordinal Q j) (prop-ordinal-ββ i j f g) prop-ordinal-β-ββ : {P : π€ Μ } (i : is-prop P) (p : P) β (prop-ordinal P i β p) ββ πβ {π₯} prop-ordinal-β-ββ {π€} {P} i p = prop-ordinal-ββ (Ξ» (x , l) (y , k) β π-elim l) π-is-prop (Ξ» (x , l) β π-elim l) π-elim prop-ordinal-β : {P : π€ Μ } (i : is-prop P) (p : P) β (prop-ordinal P i β p) οΌ πβ prop-ordinal-β i p = eqtoidβ (ua _) fe' (prop-ordinal _ i β p) πβ (prop-ordinal-β-ββ i p) prop-ordinal-least : {P : π€ Μ } (i : is-prop P) (p : P) β is-least (prop-ordinal P i) p prop-ordinal-least i p p' p'' l = π-elim l πβ-β : {x : π {π€}} β πβ β x οΌ πβ πβ-β {π€} {x} = prop-ordinal-β π-is-prop x πβ-β-ββ : {x : π {π€}} β (πβ β x) ββ πβ {π₯} πβ-β-ββ {π€} {π₯} {x} = prop-ordinal-β-ββ π-is-prop x only-one-πβ-β΄ : πβ {π€} β΄ πβ {π₯} only-one-πβ-β΄ = prop-ordinal-β΄ π-is-prop π-is-prop (Ξ» _ β β) only-one-πβ : πβ {π€} ββ πβ {π₯} only-one-πβ = bisimilarity-gives-ordinal-equiv πβ πβ only-one-πβ-β΄ only-one-πβ-β΄ only-one-πβ-β΄ : πβ {π€} β΄ πβ {π₯} only-one-πβ-β΄ = prop-ordinal-β΄ π-is-prop π-is-prop π-elim only-one-πβ : πβ {π€} ββ πβ {π₯} only-one-πβ = bisimilarity-gives-ordinal-equiv πβ πβ only-one-πβ-β΄ only-one-πβ-β΄ πβ-β΄-shift : (Ξ± : Ordinal π¦) β πβ {π€} β΄ Ξ± β πβ {π₯} β΄ Ξ± πβ-β΄-shift Ξ± = β΄-trans πβ πβ Ξ± only-one-πβ-β΄ πβ-β²β»-πβ : πβ {π€} β²β» πβ {π₯} πβ-β²β»-πβ = β , ββ-sym (πβ β β) πβ (prop-ordinal-β-ββ π-is-prop β) πβ-β²-πβ : πβ {π€} β² πβ {π€} πβ-β²-πβ = β β²-is-equivalent-to-β²β» πβ πβ ββ»ΒΉ πβ-β²β»-πβ holds-gives-equal-πβ : {P : π€ Μ } (i : is-prop P) β P β prop-ordinal P i οΌ πβ holds-gives-equal-πβ i p = prop-ordinal-οΌ i π-is-prop (Ξ» _ β β) (Ξ» _ β p) \end{code}