Tom de Jong and Martin Escardo
January 2026
This file follows the definitions, equations, lemmas, propositions, theorems and
remarks of our paper
Tom de Jong and MartΓn HΓΆtzel EscardΓ³
Examples and counterexamples of injective types
January 2026
https://arxiv.org/abs/TODO
\begin{code}
{-# OPTIONS --safe --without-K --exact-split #-}
\end{code}
Our global assumptions are univalence and the existence of propositional
truncations.
Function extensionality and propositional extensionality can be derived from
univalence.
\begin{code}
open import UF.Univalence
open import UF.PropTrunc
module InjectiveTypes.ExamplesCounterExamplesArticle
(ua : Univalence)
(pt : propositional-truncations-exist)
where
open import MLTT.Spartan
open import UF.FunExt
open import UF.Subsingletons
open import UF.UA-FunExt
open PropositionalTruncation pt
private
fe : FunExt
fe = Univalence-gives-FunExt ua
fe' : Fun-Ext
fe' {π€} {π₯} = fe π€ π₯
pe : PropExt
pe = Univalence-gives-PropExt ua
pe' : Prop-Ext
pe' {π€} = pe π€
open import Apartness.Definition
open import Apartness.Properties pt
open Apartness pt
open import UF.Choice
open world's-simplest-axiom-of-choice fe pt
open import CoNaturals.Type
open import DedekindReals.Type fe' pe' pt
open import DedekindReals.Order fe' pe' pt renaming (_β―_ to _β―β_)
open import Notation.CanonicalMap
open import Notation.General
open import Notation.Order
open import InjectiveTypes.Blackboard fe hiding (extension)
open import InjectiveTypes.CharacterizationViaLifting fe
open import InjectiveTypes.CounterExamples ua pt
open import InjectiveTypes.InhabitedTypesTaboo pt ua
open import InjectiveTypes.NonEmptyTypes pt ua
open import InjectiveTypes.OverSmallMaps fe
open import InjectiveTypes.PointedDcpos fe pt
open import InjectiveTypes.Resizing ua pt
open import InjectiveTypes.Subtypes fe
open import Iterative.Multisets
open import Iterative.Multisets-Addendum ua
open import Iterative.Sets ua
open import Iterative.Sets-Addendum ua
open import Ordinals.Injectivity
open import Ordinals.Type
open import Quotient.Type
open import SyntheticHomotopyTheory.RP-infinity pt
open import Taboos.BasicDiscontinuity fe'
open import Taboos.Decomposability fe
open decomposability pt
open decomposability-bis pt
open import Taboos.WLPO
open import TypeTopology.SimpleTypes fe pt
open import TypeTopology.TotallySeparated
open import UF.Base
open import UF.ClassicalLogic
open import UF.Embeddings
open import UF.Equiv
open import UF.ExitPropTrunc
open split-support-and-collapsibility pt
open import UF.NotNotStablePropositions
open import UF.PropIndexedPiSigma
open import UF.Retracts
open import UF.SIP-Examples
open import UF.Size
open import UF.Subsingletons-FunExt
open import UF.SubtypeClassifier
open import Various.DedekindNonAxiomatic pt fe' pe' using (π‘β)
\end{code}
Section 2. Preliminaries
\begin{code}
Definition-2-1 : (π€ : Universe) β π€ βΊ Μ
Definition-2-1 π€ = is-small (ꪪ π€)
Lemma-2-2 : {X : π€ Μ} (A : X β π₯ Μ) (B : (x : X) β A x β π¦ Μ )
(x y : X) (a : A x) (b : B x a) (p : x οΌ y)
β transport (Ξ» - β Sigma (A -) (B -)) p (a , b)
οΌ transport A p a , transportd A B a p b
Lemma-2-2 A B x y a b p = transport-Ξ£ A B y p a {b}
module _
{X : π€ Μ } (a : X) {Y : X β π₯ Μ } (i : is-prop X)
where
Lemma-2-3-i : Ξ Y β Y a
Lemma-2-3-i = prop-indexed-product a fe' i
Lemma-2-3-iβ : β Lemma-2-3-i β οΌ (Ξ» f β f a)
Lemma-2-3-iβ = refl
Lemma-2-3-iβ : β Lemma-2-3-i ββ»ΒΉ οΌ (Ξ» y x β transport Y (i a x) y)
Lemma-2-3-iβ = refl
Lemma-2-3-ii : Y a β Ξ£ Y
Lemma-2-3-ii = β-sym (prop-indexed-sum a i)
Lemma-2-3-iiβ : β Lemma-2-3-ii β οΌ (Ξ» y β (a , y))
Lemma-2-3-iiβ = refl
Lemma-2-3-iiβ : β Lemma-2-3-ii ββ»ΒΉ οΌ (Ξ» (x , y) β transport Y (i x a) y)
Lemma-2-3-iiβ = refl
\end{code}
Section 3. Flabbiness and injectivity
\begin{code}
Definition-3-1 : (D : π¦ Μ ) (π€ π₯ : Universe) β (π€ β π₯) βΊ β π¦ Μ
Definition-3-1 = ainjective-type
Definition-3-2 : (D : π¦ Μ ) (π€ : Universe) β π€ βΊ β π¦ Μ
Definition-3-2 = aflabby
Lemma-3-3-i : (D : π¦ Μ ) β ainjective-type D π€ π₯ β aflabby D π€
Lemma-3-3-i = ainjective-types-are-aflabby
Lemma-3-3-ii : (D : π¦ Μ ) β aflabby D (π€ β π₯) β ainjective-type D π€ π₯
Lemma-3-3-ii = aflabby-types-are-ainjective
Lemma-3-4 : (D : π¦ Μ ) β ainjective-type D π€ π₯
β (D' : π¦ Μ ) β retract D' of D β ainjective-type D' π€ π₯
Lemma-3-4 D ainj D' = retract-of-ainjective D' D ainj
Lemma-3-5 : (D : π¦ Μ ) β aflabby D π£
β (X : π€ Μ ) (Y : π₯ Μ ) (j : X β Y)
β is-embedding j
β j is π£ small-map
β (f : X β D)
β Ξ£ f' κ (Y β D) , f' β j βΌ f
Lemma-3-5 D aflab X Y = aflabbiness-gives-injectivity-over-small-maps D aflab
Lemma-3-6 : {π¦ π€ π₯ π£β π£β π£β : Universe}
β (D : π¦ Μ ) β ainjective-type D (π£β β π£β) π£β
β (X : π€ Μ ) (Y : π₯ Μ ) (j : X β Y)
β is-embedding j
β j is π£β small-map
β (f : X β D)
β Ξ£ f' κ (Y β D) , f' β j βΌ f
Lemma-3-6 {π¦} {π€} {π₯} {π£β} {π£β} {π£β} D ainj X Y j =
ainjectivity-over-small-maps π£β D ainj j
module _
{π€ π₯ π£β π£β π£β : Universe}
(D : π€ Μ ) (ainj : ainjective-type D (π£β β π£β) π£β)
(Y : π₯ Μ ) (j : D β Y)
(j-emb : is-embedding j)
(j-small : j is π£β small-map)
where
Lemma-3-7-i : retract D of Y
Lemma-3-7-i = embedding-retract' π£β D Y j j-emb j-small ainj
Lemma-3-7-ii : section Lemma-3-7-i οΌ j
Lemma-3-7-ii = refl
module _
(π£ : Universe)
where
open ainjectivity-of-Lifting π£
open ainjectivity-of-Lifting' π£ (ua π£)
Lemma-3-8 : (X : π€ Μ ) β (Ξ· βΆ (X β π X)) is π£ small-map
Lemma-3-8 X = Ξ·-is-small-map
Lemma-3-9 : (D : π€ Μ ) β ainjective-type D (π₯ β π£) π¦
β retract D of π D
Lemma-3-9 {π€} {π₯} = ainjective-is-retract-of-free-π-algebra' π₯
Theorem-3-10 : (D : π€ Μ )
β ainjective-type D π£ π£ β (Ξ£ X κ π€ Μ , retract D of π X)
Theorem-3-10 = ainjectives-in-terms-of-free-π-algebras'
Theorem-3-11
: (D : π€ Μ )
β ainjective-type D π£ π£ β (Ξ£ A κ π£ βΊ β π€ Μ , π-alg A Γ (retract D of A))
Theorem-3-11 = ainjectives-in-terms-of-π-algebras
\end{code}
Section 4. Examples
\begin{code}
Examples-1-i : ainjective-type (π€ Μ ) π€ π€
Examples-1-i {π€} = universes-are-ainjective-Ξ£ (ua π€)
Examples-1-ii : ainjective-type (π€ Μ ) π€ π€
Examples-1-ii {π€} = universes-are-ainjective-Ξ (ua π€)
Examples-2 : ainjective-type (Ξ© π€) π€ π€
Examples-2 {π€} = Ξ©-ainjective pe'
\end{code}
Examples (3)β(5) can be found below and are postponed for now (as in the paper).
\begin{code}
Examples-6-i : set-quotients-exist β ainjective-type (Ordinal π€) π€ π€
Examples-6-i {π€} sqe =
pointed-dcpos-are-ainjective-types π€ (Ord-DCPO , πβ , πβ-least-β΄)
where
open import DomainTheory.Basics.Dcpo pt fe' π€
open import Ordinals.AdditionProperties ua
open import Ordinals.Arithmetic fe
open import Ordinals.Equivalence
open import Ordinals.OrdinalOfOrdinals ua
open import Ordinals.OrdinalOfOrdinalsSuprema ua
open import Quotient.GivesSetReplacement
sr : Set-Replacement pt
sr = set-replacement-from-set-quotients-and-prop-trunc sqe pt
Ord-DCPO : DCPO {π€ βΊ} {π€}
Ord-DCPO = (Ordinal π€ , _β΄_ ,
(the-type-of-ordinals-is-a-set (ua π€) fe' ,
β΄-is-prop-valued , β΄-refl , β΄-trans , β΄-antisym) ,
(Ξ» I Ξ± _ β ordinal-of-ordinals-has-small-suprema' pt sr I Ξ±))
where
open suprema pt sr
Examples-6-ii : ainjective-type (Ordinal π€) π€ π€
Examples-6-ii {π€} = Ordinal-is-ainjective (ua π€)
where
open ordinals-injectivity fe
Proposition-4-1 : let NE = (Ξ£ X κ π€ Μ , ¬¬ X) in
(retract NE of (π€ Μ )) Γ ainjective-type NE π€ π€
Proposition-4-1 {π€} = Non-Empty-retract π€ , Non-Empty-is-injective π€
Lemma-4-2 : (P : π£ Μ ) (X : P β π€ Μ ) β is-prop P
β (Ξ p κ P , ¬¬ X p) β ¬¬ Ξ X
Lemma-4-2 P X i Ο Ξ½ = Ξ½ III
where
I : (p : P) β Β¬ X p
I p x = Ξ½ (Ξ» p' β transport X (i p p') x)
II : Β¬ P
II p = Ο p (I p)
III : (p : P) β X p
III p = π-elim (II p)
Proposition-4-1-alt : ainjective-type (Ξ£ X κ π€ Μ , ¬¬ X) π€ π€
Proposition-4-1-alt =
ainjectivity-of-type-of-structures (¬¬_) (Π-closure-criterion ¬¬_ T T-refl c)
where
open import InjectiveTypes.MathematicalStructures ua
T : {X Y : π€ Μ } β (X β Y) β ¬¬ X β ¬¬ Y
T π = ¬¬-functor β π β
T-refl : {X : π€ Μ } β T (β-refl X) βΌ id
T-refl x = refl
c : closed-under-prop-Π' ¬¬_ T T-refl
c (P , i) X = m-is-equiv
where
m : ¬¬ Ξ X β Ξ p κ P , ¬¬ X p
m h p = T (prop-indexed-product p fe' i) h
m-is-equiv : is-equiv m
m-is-equiv = qinvs-are-equivs m
(Lemma-4-2 P X i ,
(Ξ» _ β negations-are-props fe' _ _) ,
(Ξ» _ β Ξ -is-prop fe' (Ξ» p β negations-are-props fe') _ _))
module _
(π₯ : Universe)
where
open import DomainTheory.Basics.Pointed pt fe' π₯
Proposition-4-3 : (π : DCPOβ₯ {π€} {π£}) β ainjective-type βͺ π β« π₯ π₯
Proposition-4-3 = pointed-dcpos-are-ainjective-types π₯
Example-4-4 : ainjective-type π‘β π€β π€β
Example-4-4 = pointed-dcpos-are-ainjective-types π€β π‘β-DCPOβ₯
where
open import DomainTheory.Examples.ExtendedPartialDedekindReals pt fe' pe'
Theorem-4-5 : aflabby (π π€) π€
Theorem-4-5 {π€} = π-is-aflabby-Ξ£ π€
Corollary-4-6 : ainjective-type (π π€) π€ π€
Corollary-4-6 {π€} = π-is-ainjective-Ξ£ π€
Theorem-4-7 : set-quotients-exist β ainjective-type (π π€) π€ π€
Theorem-4-7 {π€} sqe = π-is-ainjective π€ pt sr
where
open import Quotient.GivesSetReplacement
sr : Set-Replacement pt
sr = set-replacement-from-set-quotients-and-prop-trunc sqe pt
module _
(S : π€ Μ β π₯ Μ )
where
open import InjectiveTypes.MathematicalStructures ua
Definition-4-8 : π€ βΊ β π₯ Μ
Definition-4-8 = closed-under-prop-Ξ S
Lemma-4-9 : closed-under-prop-Ξ S β aflabby (Ξ£ S) π€
Lemma-4-9 = aflabbiness-of-type-of-structured-types S
module _
(T : {X Y : π€ Μ } β X β Y β S X β S Y)
(r : {X : π€ Μ } β T (β-refl X) βΌ id)
where
open canonical-map' S T r
Lemma-4-10-i : {X Y : π€ Μ } (h : X β Y)
β T h βΌ treq S h
Lemma-4-10-i = transport-eqtoid S T r
Lemma-4-10-ii
: (P : Ξ© π€) (A : P holds β π€ Μ ) (s : S (Ξ A)) (p : P holds)
β Ο P A s p οΌ T (Ο P A p) s
Lemma-4-10-ii P A s p = happly (Ο-and-Ο-agree P A s) p
module _
where
open import InjectiveTypes.MathematicalStructures ua
Lemma-4-11 : {π€ π₯β π₯β : Universe} (Sβ : π€ Μ β π₯β Μ ) (Sβ : π€ Μ β π₯β Μ )
β closed-under-prop-Ξ Sβ
β closed-under-prop-Ξ Sβ
β closed-under-prop-Ξ (Ξ» X β Sβ X Γ Sβ X)
Lemma-4-11 Sβ Sβ = closure-under-prop-Ξ -Γ
Lemma-4-12 : (S : π€ Μ β π₯ Μ) (S-closed : closed-under-prop-Ξ S)
(π : (X : π€ Μ) β S X β Ξ© π¦)
β ((P : Ξ© π€) (A : P holds β π€ Μ)
β (Ξ± : (p : P holds) β S (A p))
β ((p : P holds) β π (A p) (Ξ± p) holds)
β π (Ξ A) (inverse (canonical-map.Ο S P A) (S-closed P A) Ξ±) holds)
β closed-under-prop-Ξ (Ξ» X β Ξ£ s κ S X , π X s holds)
Lemma-4-12 S S-closed π =
closure-under-prop-Ξ -with-axioms S S-closed
(Ξ» X s β π X s holds) (Ξ» X s β holds-is-prop (π X s))
module Examples-4-13-a where
open import InjectiveTypes.MathematicalStructures ua
[1] : ainjective-type (Pointed-type π€) π€ π€
[1] = ainjectivity-of-type-of-pointed-types
[2] : ainjective-type (β-Magma π€) π€ π€
[2] = ainjectivity-of-β-Magma
[3] : ainjective-type (β-Magma π€) π€ π€
[3] = ainjectivity-of-β-Magma
[4] : ainjective-type (monoid.Monoid {π€}) π€ π€
[4] = ainjectivity-of-Monoid
[5] : ainjective-type (group.Group {π€}) π€ π€
[5] = ainjectivity-of-Group
module Examples-4-13-b where
open import InjectiveTypes.MathematicalStructuresMoreGeneral ua
[6] : ainjective-type (Graph π€) π€ π€
[6] = ainjectivity-of-Graph
[7] : ainjective-type (Poset π€) π€ π€
[7] = ainjectivity-of-Poset
[8] : ainjective-type (Fam π€) π€ π€
[8] = ainjectivity-of-Fam
[9] : ainjective-type (Ξ£ X κ π€ Μ , Ξ£ Y κ π€ Μ , (X β Y)) π€ π€
[9] = ainjectivity-of-type-of-all-functions
module _
(X : π€ Μ )
(A : X β π₯ Μ )
(Ο : aflabby X π¦)
where
open import InjectiveTypes.Sigma fe
Definition-4-14 : (P : Ξ© π¦) (f : P holds β X)
β A (extension Ο P f) β Ξ p κ P holds , A (f p)
Definition-4-14 = Ο A Ο
Theorem-4-15 : compatibility-data A Ο β aflabby (Ξ£ x κ X , A x) π¦
Theorem-4-15 = Ξ£-is-aflabby A Ο
Corollary-4-16 : ((x : X) β is-prop (A x))
β ((P : Ξ© π¦) (f : P holds β X)
β (Ξ p κ P holds , A (f p)) β A (extension Ο P f))
β aflabby (Ξ£ x κ X , A x) π¦
Corollary-4-16 = subtype-is-aflabby A Ο
Proposition-4-17
: {π€ : Universe}
β Ξ£ X κ π€ βΊ Μ
, Ξ£ A κ (X β π€ Μ ) , ainjective-type (Ξ£ x κ X , A x) π€ π€
Γ (ainjective-type X π€ π€ β Propositions-Are-Projective π€)
Proposition-4-17 {π€} =
example-of-injective-sum-whose-index-type-may-not-be-injective π€
module _ where
open import InjectiveTypes.Sigma fe
Lemma-4-18-i : {π€ π₯β π₯β π¦ : Universe} {X : π€ Μ} (Ο : aflabby X π¦)
{Aβ : X β π₯β Μ} {Aβ : X β π₯β Μ}
β compatibility-data Aβ Ο
β compatibility-data Aβ Ο
β compatibility-data (Ξ» x β Aβ x Γ Aβ x) Ο
Lemma-4-18-i = compatibility-data-Γ
Lemma-4-18-ii : {π€ π₯β π₯β π¦ : Universe} {X : π€ Μ} (Ο : aflabby X π¦)
{Aβ : X β π₯β Μ} {Aβ : X β π₯β Μ}
β compatibility-condition Aβ Ο
β compatibility-condition Aβ Ο
β compatibility-condition (Ξ» x β Aβ x Γ Aβ x) Ο
Lemma-4-18-ii = compatibility-condition-Γ
Lemma-4-19-i
: {X : π€ Μ } (Ο : aflabby X π₯) (A : X β π¦ Μ )
(Ο-has-section : compatibility-data A Ο)
(B : (x : X ) β A x β π₯ Μ )
(B-is-prop-valued : (x : X) (a : A x) β is-prop (B x a))
(B-is-closed-under-extension
: (p : Ξ© π₯ )
(f : p holds β X)
β (Ξ± : (h : p holds) β A (f h))
β ((h : p holds) β B (f h) (Ξ± h))
β B (extension Ο p f) (section-map (Ο A Ο p f) (Ο-has-section p f) Ξ±))
β compatibility-data (Ξ» x β Ξ£ a κ A x , B x a) Ο
Lemma-4-19-i = compatibility-data-with-axioms
Lemma-4-19-ii
: {X : π€ Μ } (Ο : aflabby X π₯) (A : X β π¦ Μ )
(Ο-is-equiv : compatibility-condition A Ο)
(B : (x : X ) β A x β π₯ Μ )
(B-is-prop-valued : (x : X) (a : A x) β is-prop (B x a))
(B-is-closed-under-extension
: (p : Ξ© π₯ )
(f : p holds β X)
β (Ξ± : (h : p holds) β A (f h))
β ((h : p holds) β B (f h) (Ξ± h))
β B (extension Ο p f) (inverse (Ο A Ο p f) (Ο-is-equiv p f) Ξ±))
β compatibility-condition (Ξ» x β Ξ£ a κ A x , B x a) Ο
Lemma-4-19-ii = compatibility-condition-with-axioms
module _
(S : π€ Μ β π₯ Μ )
(T : {X Y : π€ Μ } β X β Y β S X β S Y)
(r : {X : π€ Μ } β T (β-refl X) βΌ id)
where
open import InjectiveTypes.MathematicalStructuresMoreGeneral ua
open import InjectiveTypes.Sigma fe using (compatibility-data)
open import MetricSpaces.StandardDefinition fe' pe' pt
Definition-4-20-i : (P : Ξ© π€) (A : P holds β π€ Μ)
β S (Ξ£ A) β Ξ p κ P holds , S (A p)
Definition-4-20-i = ΟΞ£ S T r
Definition-4-20-ii : (P : Ξ© π€) (A : P holds β π€ Μ)
(s : S (Ξ£ A)) (p : P holds)
β Definition-4-20-i P A s p οΌ T (β-sym (Ξ£-ππ P p)) s
Definition-4-20-ii P A s p = refl
Definition-4-21 : π€ βΊ β π₯ Μ
Definition-4-21 = compatibility-data-Ξ£ S T r
Lemma-4-22 : compatibility-data-Ξ£ S T r
β compatibility-data S universes-are-flabby-Ξ£
Lemma-4-22 = Ξ£-construction S T r
Theorem-4-23 : compatibility-data-Ξ£ S T r
β aflabby (Ξ£ X κ π€ Μ , S X) π€
Theorem-4-23 comp =
Theorem-4-15 (π€ Μ ) S universes-are-flabby-Ξ£ (Lemma-4-22 comp)
Example-4-24-1 : (R : π₯ Μ ) β ainjective-type (Graph' R π€) π€ π€
Example-4-24-1 R = ainjectivity-of-Graph' R
Example-4-24-2 : {π€ : Universe} β let π₯ = π€β β π€ in
ainjective-type (Metric-Space π₯) π₯ π₯
Example-4-24-2 {π€} = ainjectivity-of-Metric-Space pt {π€}
Lemma-4-25 : (D : π€ Μ ) (P : D β π₯ Μ ) β ((d : D) β is-prop (P d))
β has-retraction (prβ βΆ ((Ξ£ d κ D , P d) β D))
β (Ξ£ f κ (D β D) , ((d : D) β P (f d)) Γ ((d : D) β P d β f d οΌ d))
Lemma-4-25 = canonical-embedding-has-retraction-reformulation
Theorem-4-26
: (π€ π₯ π¦ π£ : Universe)
β (D : π€ Μ ) β ainjective-type D (π₯ β π¦) π£
β (P : D β π₯ Μ ) β ((d : D) β is-prop (P d))
β (ainjective-type (Ξ£ P) (π₯ β π¦) π£ β retract (Ξ£ P) of D)
Γ (retract (Ξ£ P) of D β has-retraction (prβ βΆ (Ξ£ P β D)))
Γ (has-retraction (prβ βΆ (Ξ£ P β D))
β (Ξ£ f κ (D β D) , ((d : D) β P (f d)) Γ ((d : D) β P d β f d οΌ d)))
Theorem-4-26 π€ π₯ π¦ π£ D D-ainj P P-prop =
([3]β[2] β [1]β[3] , [2]β[1]) ,
([1]β[3] β [2]β[1] , [3]β[2]) ,
[3]β[4]
where
[1]β[3] : ainjective-type (Ξ£ P) (π₯ β π¦) π£ β has-retraction (prβ βΆ (Ξ£ P β D))
[1]β[3] =
canonical-embedding-has-retraction-if-subtype-is-ainjective D P P-prop {π¦}
[3]β[2] : has-retraction (prβ βΆ (Ξ£ P β D)) β retract (Ξ£ P) of D
[3]β[2] (s , Ο) = (s , prβ , Ο)
[3]β[4] : has-retraction (-id (Sigma D P β D) (Ξ» r β prβ r))
β (Ξ£ f κ (D β D) , ((d : D) β P (f d)) Γ ((d : D) β P d β f d οΌ d))
[3]β[4] = Lemma-4-25 D P P-prop
[2]β[1] : retract (Ξ£ P) of D β ainjective-type (Ξ£ P) (π₯ β π¦) π£
[2]β[1] = ainjective-subtype-if-retract D P P-prop D-ainj
Lemma-4-27 : (D : π€ Μ ) β ainjective-type D π¦ π£
β (P : D β π₯ Μ ) β ((d : D) β is-prop (P d))
β retract (Ξ£ P) of D β ainjective-type (Ξ£ P) π¦ π£
Lemma-4-27 D D-ainj P P-prop = ainjective-subtype-if-retract D P P-prop D-ainj
Corollary-4-28 : (D : π€ βΊ Μ ) β ainjective-type D π€ π€
β (P : D β π€ Μ ) β ((d : D) β is-prop (P d))
β ainjective-type (Ξ£ d κ D , P d) π€ π€
β retract (Ξ£ P) of D
Corollary-4-28 {π€} D D-ainj P P-prop =
prβ (Theorem-4-26 (π€ βΊ) π€ π€ π€ D D-ainj P P-prop)
module _ where
open import Modal.Subuniverse
Corollary-4-29 : (P : subuniverse π€ π₯) β subuniverse-is-reflective P
β ainjective-type (subuniverse-member P) π€ π€
Corollary-4-29 {π€} {π₯} β@(P , P-prop) P-reflective =
sufficient-condition-for-injectivity-of-subtype
(π€ Μ ) P P-prop (universes-are-ainjective-Ξ ' (ua π€))
(β , β-is-modal , I)
where
open import Modal.ReflectiveSubuniverse β P-reflective
I : (A : π€ Μ) β P A β β A οΌ A
I A A-modal = eqtoid (ua π€) (β A) A
(β-sym (Ξ· A , is-modal-gives-Ξ·-is-equiv fe' A A-modal))
\end{code}
Section 4.7. Β΄Models of generalized algebraic theoriesΒ΄ is not formalized.
This concludes Section 4.
Section 5. Weak excluded middle and De Morgan's Law
\begin{code}
Lemma-5-1 : (A : π€ Μ ) (B : π₯ Μ )
β is-prop (A + B) β is-prop A Γ is-prop B Γ Β¬ (A Γ B)
Lemma-5-1 A B =
(Ξ» k β prβ (I k) , prβ (prβ (I k)) , Ξ» (a , b) β prβ (prβ (I k)) a b) ,
(Ξ» (i , j , Ξ½) β +-is-prop i j (Ξ» a b β Ξ½ (a , b)))
where
I : is-prop (A + B) β is-prop A Γ is-prop B Γ (A β B β π)
I = sum-of-contradictory-props'-converse
Theorem-5-2-i
: (WEM π€ β typal-WEM π€)
Γ (typal-WEM π€ β De-Morgan pt π€)
Γ (De-Morgan pt π€ β typal-De-Morgan pt π€)
Γ (typal-De-Morgan pt π€ β untruncated-De-Morgan π€)
Γ (untruncated-De-Morgan π€ β untruncated-typal-De-Morgan π€)
Theorem-5-2-i {π€} =
([1]β[2] , [3]β[1] β [5]β[3] β [6]β[5] β [2]β[6]) ,
([5]β[3] β [6]β[5] β [2]β[6] , [1]β[2] β [3]β[1]) ,
([6]β[4] β [2]β[6] β [1]β[2] β [3]β[1] , [4]β[3]) ,
([6]β[5] β [2]β[6] β [1]β[2] β [3]β[1] β [4]β[3] ,
[6]β[4] β [2]β[6] β [1]β[2] β [3]β[1] β [5]β[3]) ,
([2]β[6] β [1]β[2] β [3]β[1] β [5]β[3] , [6]β[5])
where
[1]β[2] : WEM π€ β typal-WEM π€
[1]β[2] = WEM-gives-typal-WEM fe'
[2]β[6] : typal-WEM π€ β untruncated-typal-De-Morgan π€
[2]β[6] = typal-WEM-gives-untruncated-typal-De-Morgan
[6]β[4] : untruncated-typal-De-Morgan π€ β typal-De-Morgan pt π€
[6]β[4] = untruncated-typal-De-Morgan-gives-typal-De-Morgan pt
[6]β[5] : untruncated-typal-De-Morgan π€ β untruncated-De-Morgan π€
[6]β[5] = untruncated-typal-De-Morgan-gives-untruncated-De-Morgan
[5]β[3] : untruncated-De-Morgan π€ β De-Morgan pt π€
[5]β[3] = untruncated-De-Morgan-gives-De-Morgan pt
[4]β[3] : typal-De-Morgan pt π€ β De-Morgan pt π€
[4]β[3] = typal-De-Morgan-gives-De-Morgan pt
[3]β[1] : De-Morgan pt π€ β WEM π€
[3]β[1] = De-Morgan-gives-WEM pt fe'
Theorem-5-2-ii : is-prop (WEM π€)
Γ is-prop (typal-WEM π€)
Γ is-prop (De-Morgan pt π€)
Γ is-prop (typal-De-Morgan pt π€)
Theorem-5-2-ii = WEM-is-prop fe ,
typal-WEM-is-prop fe ,
De-Morgan-is-prop pt fe ,
typal-De-Morgan-is-prop pt fe
Lemma-5-3 : (Ξ΄ : untruncated-De-Morgan π€)
β Ξ£ Ξ΄' κ untruncated-De-Morgan π€ , Ξ΄' β Ξ΄
Lemma-5-3 = untruncated-De-Morgan-has-at-least-two-witnesses-if-it-has-one fe'
\end{code}
Section 6. A Rice-like theorem for injective types
\begin{code}
Definition-6-1 : π€ Μ β π€ Μ
Definition-6-1 = decomposition
Lemma-6-2 : (X : π€ Μ ) β (Ξ£ Y κ (π β π€ Μ ) , Y β + Y β β X) β (X β π)
Lemma-6-2 {π€} = decomposition-lemma (ua π€)
Remark-6-3 : (X : π€ Μ )
β (decomposition X β (Ξ£ Y κ (π β π€ Μ ) , (Y β + Y β β X) Γ Y β Γ Y β))
Γ (decomposition X β retract π of X)
Remark-6-3 {π€} X = decompositions-agree (ua π€) X ,
decompositions-as-retracts X
Proposition-6-4 : typal-WEM π€ β (X : π€ Μ )
β has-two-distinct-points X β decomposition X
Proposition-6-4 = WEM-gives-decomposition-of-two-pointed-types
Definition-6-5-i : {π€ π₯ : Universe} β (X : π₯ Μ ) β X β X β π€ βΊ β π₯ Μ
Definition-6-5-i {π€} {π₯} X = Ξ©-Path {π₯} {X} π€
Definition-6-5-ii : {π€ π₯ : Universe} β (X : π₯ Μ ) β π€ βΊ β π₯ Μ
Definition-6-5-ii {π€} {π₯} = has-Ξ©-paths π€
Lemma-6-6 : decomposition (Ξ© π€) β typal-WEM π€
Lemma-6-6 = decomposition-of-Ξ©-gives-WEM pe'
Lemma-6-7 : (X : π€ Μ ) β decomposition X β has-Ξ©-paths π₯ X β typal-WEM π₯
Lemma-6-7 X = decomposition-of-type-with-Ξ©-paths-gives-WEM pe' {X}
Lemma-6-8 : (D : π€ Μ ) β ainjective-type D π€β (π¦ βΊ) β has-Ξ©-paths π¦ D
Lemma-6-8 = ainjective-types-have-Ξ©-paths-naive pe'
Lemma-6-9 : (D : π€ Μ ) β ainjective-type D π₯ π¦ β has-Ξ©-paths π₯ D
Lemma-6-9 = ainjective-types-have-Ξ©-paths pe'
Theorem-6-10 : (D : π€ Μ ) β ainjective-type D π₯ π¦ β decomposition D β typal-WEM π₯
Theorem-6-10 = decomposition-of-ainjective-type-gives-WEM pe'
Proposition-6-11 : (D : π€ Μ ) β ainjective-type D π€ π₯
β has-two-distinct-points D
β decomposable D β decomposition D
Proposition-6-11 D ainj htdp =
ainjective-type-decomposability-gives-decomposition pe' D ainj htdp , β£_β£
\end{code}
Section 7. Counterexamples
\begin{code}
Counterexample-7-1 : ainjective-type π π€ π€ β typal-WEM π€
Counterexample-7-1 = π-ainjective-gives-WEM , WEM-gives-π-ainjective
Lemma-7-2 : WLPO β (Ξ£ f κ (ββ β ββ) , ((n : β) β f (ΞΉ n) οΌ ΞΉ 0) Γ (f β οΌ ΞΉ 1))
Lemma-7-2 = WLPO-is-discontinuous' ,
(Ξ» (f , p) β basic-discontinuity-taboo' f p)
Counterexample-7-3-1 : ainjective-type ββ π€β π€β β WLPO
Counterexample-7-3-1 = ββ-injective-gives-WLPO
Counterexample-7-3-2 : ainjective-type ββ π€ π₯ β typal-WEM π€
Counterexample-7-3-2 = ββ-injective-gives-WEM
Counterexample-7-4-1 : ainjective-type β π€β π€β
β Ξ£ H κ (β β β) ,
((x : β) β (x < 0β β H x οΌ 0β)
Γ (x β₯ 0β β H x οΌ 1β))
Counterexample-7-4-1 = β-ainjective-gives-Heaviside-function
Counterexample-7-4-2 : ainjective-type β π€ π₯ β typal-WEM π€
Counterexample-7-4-2 = β-ainjective-gives-WEM
Definition-7-5 : π€ Μ β (π₯ : Universe) β π₯ βΊ β π€ Μ
Definition-7-5 = Nontrivial-Apartness
Theorem-7-6 : (X : π€ Μ )
β ainjective-type X π£ π¦
β Nontrivial-Apartness X π₯
β typal-WEM π£
Theorem-7-6 X = ainjective-type-with-non-trivial-apartness-gives-WEM
Theorem-7-7-1 : typal-WEM π€ β (X : π€ Μ )
β has-two-distinct-points X
β Nontrivial-Apartness X π€
Theorem-7-7-1 wem X htdp =
WEM-gives-that-type-with-two-distinct-points-has-nontrivial-apartness
fe' {X} htdp wem
Theorem-7-7-2 : typal-WEM π€ β (X : π€ βΊ Μ )
β is-locally-small X
β has-two-distinct-points X
β Nontrivial-Apartness X π€
Theorem-7-7-2 wem X X-loc-small htdp =
WEM-gives-that-type-with-two-distinct-points-has-nontrivial-apartnessβΊ
fe' X-loc-small htdp wem
Corollary-7-8 : Nontrivial-Apartness (π€ Μ ) π€ β typal-WEM π€
Corollary-7-8 {π€} =
Theorem-7-6 (π€ Μ ) (universes-are-ainjective-Ξ ' (ua π€)) ,
(Ξ» wem β Theorem-7-7-2 wem (π€ Μ )
(universes-are-locally-small (ua π€))
universe-has-two-distinct-points)
Corollary-7-9 : (X : π€β Μ) β simple-typeβ X
β ainjective-type X π€ π€ β typal-WEM π€
Corollary-7-9 = simple-typeβ-injective-gives-WEM
Theorem-7-10 : (X : π€ Μ ) β Tight-Apartness X π₯ Γ Β¬ (is-subsingleton X)
β ainjective-type X π£ π¦ β ¬¬ typal-WEM π£
Theorem-7-10 X (ta , ns) ainj =
non-trivial-ainjective-type-with-tight-apartness-gives-¬¬-WEM
(X , ns , ainj , ta)
Proposition-7-11 : (X : π€ Μ ) β is-totally-separated X Γ Β¬ (is-subsingleton X)
β ainjective-type X π£ π¦ β ¬¬ typal-WEM π£
Proposition-7-11 X (ts , ns) ainj =
non-trivial-totally-separated-ainjective-type-gives-¬¬-WEM pe' (X , ns , ts , ainj)
Proposition-7-11-alt : (X : π€ Μ ) β is-totally-separated X Γ Β¬ (is-subsingleton X)
β ainjective-type X π£ π¦ β ¬¬ typal-WEM π£
Proposition-7-11-alt X (ts , ns) ainj =
non-trivial-totally-separated-ainjective-type-gives-¬¬-WEM' (X , ns , ts , ainj)
Theorem-7-12 : retracts-of-small-types-are-small
β (D : π€ Μ )
β ainjective-type D (π€ β π₯) π¦
β has-two-distinct-points D
β is-small (ꪪ π€)
Theorem-7-12 {π€} {π₯} {π¦} =
small-ainjective-type-with-two-distinct-points-gives-ꪪ-resizing {π€} {π₯} {π¦}
Theorem-7-13
: (ainjective-type (Inhabited π€) π€ π€ β retract (Inhabited π€) of (π€ Μ ))
Γ (retract (Inhabited π€) of (π€ Μ ) β Propositions-Are-Projective π€)
Γ (Propositions-Are-Projective π€ β Unspecified-Split-Support π€)
Theorem-7-13 {π€} =
([4]β[2] β [3]β[4] β [1]β[3] , [2]β[1]) ,
([1]β[3] β [2]β[1] , [4]β[2] β [3]β[4]) ,
([3]β[4] , [1]β[3] β [2]β[1] β [4]β[2])
where
[4]β[2] : Unspecified-Split-Support π€ β retract (Inhabited π€) of (π€ Μ )
[4]β[2] = unspecified-split-support-gives-retract π€
[2]β[1] : retract (Inhabited π€) of (π€ Μ ) β ainjective-type (Inhabited π€) π€ π€
[2]β[1] = retract-gives-injectivity π€
[1]β[3] : ainjective-type (Inhabited π€) π€ π€ β Propositions-Are-Projective π€
[1]β[3] = injectivity-gives-projective-propositions π€
[3]β[4] : Propositions-Are-Projective π€ β Unspecified-Split-Support π€
[3]β[4] = projective-propositions-gives-unspecified-split-support π€
Lemma-7-14 : (D : π€ Μ ) β ainjective-type D π₯ π¦ β (T : D β π£ Μ )
β ainjective-type (Ξ£ d κ D , β₯ T d β₯) (π£ β π₯') π¦'
β (d : D) β β₯ has-split-support (T d) β₯
Lemma-7-14 {π€} {π₯} {π¦} {π£} {π₯'} {π¦'} =
family-has-unspecified-split-support-if-total-space-of-truncation-is-ainjective
{π€} {π₯} {π¦} {π£} {π₯'} {π¦'}
Lemma-7-15 : WSAC π€ π€ β ((X : π€ Μ ) β β₯ has-split-support (X β π) β₯)
Lemma-7-15 = WSAC-equivalent-formulations
NB : ((X : π€ Μ ) β β₯ has-split-support (X β π) β₯) οΌ WSAC' π€
NB = refl
Theorem-7-16 : ainjective-type βPβ π₯ π¦ β WSAC' π€β
Theorem-7-16 = βPβ-ainjective-implies-WSAC
\end{code}