diff --git a/source/InjectiveTypes/Article.lagda b/source/InjectiveTypes/Article.lagda index 2034b904b..8efc986f4 100644 --- a/source/InjectiveTypes/Article.lagda +++ b/source/InjectiveTypes/Article.lagda @@ -361,7 +361,8 @@ give ๐Ÿ˜ and ๐Ÿ™ respectively: โ†’ (y : Y) โ†’ ((x : X) โ†’ j x โ‰  y) โ†’ (f โ†‘ j) y โ‰ƒ ๐Ÿ™ {๐“ฃ} -ฮ -extension-out-of-range {๐“ค} {๐“ฅ} {๐“ฆ} f j y ฯ† = prop-indexed-product-one (fe (๐“ค โŠ” ๐“ฅ) ๐“ฆ) (uncurry ฯ†) +ฮ -extension-out-of-range {๐“ค} {๐“ฅ} {๐“ฆ} f j y ฯ† = + prop-indexed-product-one (fe (๐“ค โŠ” ๐“ฅ) ๐“ฆ) (uncurry ฯ†) \end{code} @@ -409,15 +410,23 @@ automatic-functoriality-id : {X : ๐“ค ฬ‡ } (f : X โ†’ ๐“ฅ ฬ‡ ) {x : X} โ†’ f [ ๐“ป๐“ฎ๐’ป๐“ต x ] ๏ผ ๐‘–๐‘‘ (f x) automatic-functoriality-id f = refl -automatic-functoriality-โˆ˜ : {X : ๐“ค ฬ‡ } (f : X โ†’ ๐“ฅ ฬ‡ ) {x y z : X} (p : Id x y) (q : Id y z) +automatic-functoriality-โˆ˜ : {X : ๐“ค ฬ‡ } + (f : X โ†’ ๐“ฅ ฬ‡ ) + {x y z : X} + (p : Id x y) + (q : Id y z) โ†’ f [ p โˆ™ q ] ๏ผ f [ q ] โˆ˜ f [ p ] automatic-functoriality-โˆ˜ f refl refl = refl _โ‰ผ_ : {X : ๐“ค ฬ‡ } โ†’ (X โ†’ ๐“ฅ ฬ‡ ) โ†’ (X โ†’ ๐“ฆ ฬ‡ ) โ†’ ๐“ค โŠ” ๐“ฅ โŠ” ๐“ฆ ฬ‡ f โ‰ผ g = (x : domain f) โ†’ f x โ†’ g x -automatic-naturality : {X : ๐“ค ฬ‡ } (f : X โ†’ ๐“ฅ ฬ‡ ) (f' : X โ†’ ๐“ฆ' ฬ‡ ) - (ฯ„ : f โ‰ผ f') {x y : X} (p : Id x y) +automatic-naturality : {X : ๐“ค ฬ‡ } + (f : X โ†’ ๐“ฅ ฬ‡ ) + (f' : X โ†’ ๐“ฆ' ฬ‡ ) + (ฯ„ : f โ‰ผ f') + {x y : X} + (p : Id x y) โ†’ ฯ„ y โˆ˜ f [ p ] ๏ผ f' [ p ] โˆ˜ ฯ„ x automatic-naturality f f' ฯ„ refl = refl @@ -443,11 +452,18 @@ g โ†ฆ g โˆ˜ j. \begin{code} -โ†“-extension-left-Kan : {X : ๐“ค ฬ‡ } {Y : ๐“ฅ ฬ‡ } (f : X โ†’ ๐“ฆ ฬ‡ ) (j : X โ†’ Y) (g : Y โ†’ ๐“ฃ ฬ‡ ) +โ†“-extension-left-Kan : {X : ๐“ค ฬ‡ } + {Y : ๐“ฅ ฬ‡ } + (f : X โ†’ ๐“ฆ ฬ‡ ) + (j : X โ†’ Y) + (g : Y โ†’ ๐“ฃ ฬ‡ ) โ†’ (f โ†“ j โ‰ผ g) โ‰ƒ (f โ‰ผ g โˆ˜ j) โ†“-extension-left-Kan f j g = blackboard.ฮฃ-extension-left-Kan f j g -โ†‘-extension-right-Kan : {X : ๐“ค ฬ‡ } {Y : ๐“ฅ ฬ‡ } (f : X โ†’ ๐“ฆ ฬ‡ ) (j : X โ†’ Y) (g : Y โ†’ ๐“ฃ ฬ‡ ) +โ†‘-extension-right-Kan : {X : ๐“ค ฬ‡ } + {Y : ๐“ฅ ฬ‡ } (f : X โ†’ ๐“ฆ ฬ‡ ) + (j : X โ†’ Y) + (g : Y โ†’ ๐“ฃ ฬ‡ ) โ†’ (g โ‰ผ f โ†‘ j) โ‰ƒ (g โˆ˜ j โ‰ผ f) โ†‘-extension-right-Kan f j g = blackboard.ฮ -extension-right-Kan f j g @@ -460,7 +476,9 @@ embedding are themselves embeddings. \begin{code} -โ†“-extension-is-embedding : (X : ๐“ค ฬ‡ ) (Y : ๐“ฅ ฬ‡ ) (j : X โ†’ Y) +โ†“-extension-is-embedding : (X : ๐“ค ฬ‡ ) + (Y : ๐“ฅ ฬ‡ ) + (j : X โ†’ Y) โ†’ is-embedding j โ†’ is-embedding (_โ†“ j) โ†“-extension-is-embedding {๐“ค} {๐“ฅ} X Y j i = s-is-embedding @@ -499,7 +517,8 @@ embedding are themselves embeddings. where t : (x x' : X) (u : x' ๏ผ x) (p : j x' ๏ผ j x) (C : f x') โ†’ ap j u ๏ผ p โ†’ ((x' , p) , (x' , refl) , C) - ๏ผ (((x , refl) , (x' , p) , C) โˆถ (ฮฃ (x , _) ๊ž‰ fiber j (j x) , r (s f) x)) + ๏ผ (((x , refl) , + (x' , p) , C) โˆถ (ฮฃ (x , _) ๊ž‰ fiber j (j x) , r (s f) x)) t x x refl p C refl = refl q : โˆ€ x x' โ†’ qinv (ap j {x} {x'}) q x x' = equivs-are-qinvs (ap j) (embedding-gives-embedding' j i x x') @@ -512,11 +531,12 @@ embedding are themselves embeddings. ฮณ (g , e) = r g ฯ†ฮณ : โˆ€ m โ†’ ฯ† (ฮณ m) ๏ผ m - ฯ†ฮณ (g , e) = to-ฮฃ-๏ผ - (dfunext (fe ๐“ฅ ((๐“ค โŠ” ๐“ฅ)โบ)) - (ฮป y โ†’ eqtoid (ua (๐“ค โŠ” ๐“ฅ)) (s (r g) y) (g y) (ฮบ g y , e y)) , - ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) - (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) (ฮบ g y)) _ e) + ฯ†ฮณ (g , e) = + to-ฮฃ-๏ผ + (dfunext (fe ๐“ฅ ((๐“ค โŠ” ๐“ฅ)โบ)) + (ฮป y โ†’ eqtoid (ua (๐“ค โŠ” ๐“ฅ)) (s (r g) y) (g y) (ฮบ g y , e y)) , + ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) + (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) (ฮบ g y)) _ e) ฮณฯ† : โˆ€ f โ†’ ฮณ (ฯ† f) ๏ผ f ฮณฯ† = rs @@ -531,7 +551,10 @@ embedding are themselves embeddings. ฯˆ = prโ‚ ฯˆ-is-embedding : is-embedding ฯˆ - ฯˆ-is-embedding = prโ‚-is-embedding (ฮป g โ†’ ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) (ฮบ g y))) + ฯˆ-is-embedding = prโ‚-is-embedding + (ฮป g โ†’ ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) + (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) + (ฮบ g y))) s-is-comp : s ๏ผ ฯˆ โˆ˜ ฯ† s-is-comp = refl @@ -578,7 +601,10 @@ embedding are themselves embeddings. g (x , refl) = dfunext (fe (๐“ฅ โŠ” ๐“ค) (๐“ฅ โŠ” ๐“ค)) h where h : (t : fiber j (j x)) โ†’ C t (prโ‚ t , refl) ๏ผ C (x , refl) t - h (x' , p') = transport (ฮป - โ†’ C - (prโ‚ - , refl) ๏ผ C (x , refl) -) q refl + h (x' , p') = transport + (ฮป - โ†’ C - (prโ‚ - , refl) ๏ผ C (x , refl) -) + q + refl where q : (x , refl) ๏ผ (x' , p') q = i (j x) (x , refl) (x' , p') @@ -592,11 +618,12 @@ embedding are themselves embeddings. ฮณ (g , e) = r g ฯ†ฮณ : โˆ€ m โ†’ ฯ† (ฮณ m) ๏ผ m - ฯ†ฮณ (g , e) = to-ฮฃ-๏ผ - (dfunext (fe ๐“ฅ ((๐“ค โŠ” ๐“ฅ)โบ)) - (ฮป y โ†’ eqtoid (ua (๐“ค โŠ” ๐“ฅ)) (s (r g) y) (g y) (โ‰ƒ-sym (ฮบ g y , e y))) , - ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) - (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) (ฮบ g y)) _ e) + ฯ†ฮณ (g , e) = + to-ฮฃ-๏ผ + (dfunext (fe ๐“ฅ ((๐“ค โŠ” ๐“ฅ)โบ)) + (ฮป y โ†’ eqtoid (ua (๐“ค โŠ” ๐“ฅ)) (s (r g) y) (g y) (โ‰ƒ-sym (ฮบ g y , e y))) , + ฮ -is-prop (fe ๐“ฅ (๐“ค โŠ” ๐“ฅ)) + (ฮป y โ†’ being-equiv-is-prop'' (fe (๐“ค โŠ” ๐“ฅ) (๐“ค โŠ” ๐“ฅ)) (ฮบ g y)) _ e) ฮณฯ† : โˆ€ f โ†’ ฮณ (ฯ† f) ๏ผ f ฮณฯ† = rs @@ -635,11 +662,12 @@ iterated-โ†‘ : {๐“ค ๐“ฅ ๐“ฆ : Universe} (j : X โ†’ Y) (k : Y โ†’ Z) โ†’ (f โ†‘ j) โ†‘ k โˆผ f โ†‘ (k โˆ˜ j) iterated-โ†‘ {๐“ค} {๐“ฅ} {๐“ฆ} f j k z = eqtoid (ua (๐“ค โŠ” ๐“ฅ โŠ” ๐“ฆ)) - (((f โ†‘ j) โ†‘ k) z) ((f โ†‘ (k โˆ˜ j)) z) - (blackboard.iterated-extension j k z) - + (((f โ†‘ j) โ†‘ k) z) ((f โ†‘ (k โˆ˜ j)) z) + (blackboard.iterated-extension j k z) -retract-extension : {X : ๐“ค ฬ‡ } {Y : ๐“ฅ ฬ‡ } (f : X โ†’ ๐“ฆ ฬ‡ ) (f' : X โ†’ ๐“ฆ' ฬ‡ ) (j : X โ†’ Y) +retract-extension : {X : ๐“ค ฬ‡ } {Y : ๐“ฅ ฬ‡ } + (f : X โ†’ ๐“ฆ ฬ‡ ) (f' : X โ†’ ๐“ฆ' ฬ‡ ) + (j : X โ†’ Y) โ†’ ((x : X) โ†’ retract (f x) of (f' x)) โ†’ ((y : Y) โ†’ retract ((f โ†‘ j) y) of ((f' โ†‘ j) y)) retract-extension = blackboard.retract-extension @@ -751,9 +779,10 @@ of powers of universes: ainjective-is-retract-of-power-of-universe : (D : ๐“ค ฬ‡ ) โ†’ ainjective-type D ๐“ค (๐“ค โบ) โ†’ retract D of (D โ†’ ๐“ค ฬ‡ ) -ainjective-is-retract-of-power-of-universe {๐“ค} D i = ainjective-retract-of-subtype D i - (D โ†’ ๐“ค ฬ‡ ) - (Id , Id-is-embedding) +ainjective-is-retract-of-power-of-universe {๐“ค} D i = + ainjective-retract-of-subtype D i + (D โ†’ ๐“ค ฬ‡ ) + (Id , Id-is-embedding) \end{code} @@ -770,7 +799,9 @@ need to resizing axioms: \begin{code} -ainjective-resizingโ‚€ : (D : ๐“ค ฬ‡ ) โ†’ ainjective-type D ๐“ค (๐“ค โบ) โ†’ ainjective-type D ๐“ค ๐“ค +ainjective-resizingโ‚€ : (D : ๐“ค ฬ‡ ) + โ†’ ainjective-type D ๐“ค (๐“ค โบ) + โ†’ ainjective-type D ๐“ค ๐“ค ainjective-resizingโ‚€ {๐“ค} D i = c d where a : ainjective-type (๐“ค ฬ‡ ) ๐“ค ๐“ค @@ -838,7 +869,9 @@ and then we can put any other universe below ๐“ค back, as follows. \begin{code} -aflabby-types-are-ainjective : (D : ๐“ฆ ฬ‡ ) โ†’ aflabby D (๐“ค โŠ” ๐“ฅ) โ†’ ainjective-type D ๐“ค ๐“ฅ +aflabby-types-are-ainjective : (D : ๐“ฆ ฬ‡ ) + โ†’ aflabby D (๐“ค โŠ” ๐“ฅ) + โ†’ ainjective-type D ๐“ค ๐“ฅ aflabby-types-are-ainjective D ฯ† {X} {Y} j e f = f' , p where g : (y : Y) โ†’ ฮฃ d ๊ž‰ D , ((w : fiber j y) โ†’ d ๏ผ (f โˆ˜ prโ‚) w) @@ -860,7 +893,9 @@ two conversions between algebraic flabbiness and injectivity: \begin{code} -ainjective-resizingโ‚ : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D (๐“ค โŠ” ๐“ฃ) ๐“ฅ โ†’ ainjective-type D ๐“ค ๐“ฃ +ainjective-resizingโ‚ : (D : ๐“ฆ ฬ‡ ) + โ†’ ainjective-type D (๐“ค โŠ” ๐“ฃ) ๐“ฅ + โ†’ ainjective-type D ๐“ค ๐“ฃ ainjective-resizingโ‚ {๐“ฆ} {๐“ค} {๐“ฃ} {๐“ฅ} D i = b where a : aflabby D (๐“ค โŠ” ๐“ฃ) @@ -875,20 +910,22 @@ We record the following particular cases as examples: \begin{code} -ainjective-resizingโ‚‚ : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“ค ๐“ค -ainjective-resizingโ‚‚ = ainjective-resizingโ‚ +module _ (D : ๐“ฆ ฬ‡ ) where -ainjective-resizingโ‚ƒ : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“คโ‚€ ๐“ค -ainjective-resizingโ‚ƒ = ainjective-resizingโ‚ + ainjective-resizingโ‚‚ : ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“ค ๐“ค + ainjective-resizingโ‚‚ = ainjective-resizingโ‚ D -ainjective-resizingโ‚„ : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“ค ๐“คโ‚€ -ainjective-resizingโ‚„ = ainjective-resizingโ‚ + ainjective-resizingโ‚ƒ : ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“คโ‚€ ๐“ค + ainjective-resizingโ‚ƒ = ainjective-resizingโ‚ D -ainjective-resizingโ‚… : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“คโ‚€ โ†’ ainjective-type D ๐“ค ๐“ค -ainjective-resizingโ‚… = ainjective-resizingโ‚ + ainjective-resizingโ‚„ : ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“ค ๐“คโ‚€ + ainjective-resizingโ‚„ = ainjective-resizingโ‚ D -ainjective-resizingโ‚† : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“คโ‚€ โ†” ainjective-type D ๐“ค ๐“ค -ainjective-resizingโ‚† D = (ainjective-resizingโ‚ D , ainjective-resizingโ‚ D) + ainjective-resizingโ‚… : ainjective-type D ๐“ค ๐“คโ‚€ โ†’ ainjective-type D ๐“ค ๐“ค + ainjective-resizingโ‚… = ainjective-resizingโ‚ D + + ainjective-resizingโ‚† : ainjective-type D ๐“ค ๐“คโ‚€ โ†” ainjective-type D ๐“ค ๐“ค + ainjective-resizingโ‚† = (ainjective-resizingโ‚ D , ainjective-resizingโ‚ D) \end{code} @@ -903,12 +940,14 @@ is also algebraically injective. \begin{code} -subuniverse-aflabby-ฮฃ : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) - โ†’ aflabby (ฮฃ A) ๐“ค -subuniverse-aflabby-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ P i f = (X , a) , c +subuniverse-aflabby-ฮฃ + : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) + โ†’ aflabby (ฮฃ A) ๐“ค +subuniverse-aflabby-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ P i f + = (X , a) , c where g : P โ†’ ๐“ค ฬ‡ g = prโ‚ โˆ˜ f @@ -940,12 +979,14 @@ us reproving the following: \begin{code} -subuniverse-aflabby-ฮ  : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) - โ†’ aflabby (ฮฃ A) ๐“ค -subuniverse-aflabby-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ P i f = (X , a) , c +subuniverse-aflabby-ฮ  + : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) + โ†’ aflabby (ฮฃ A) ๐“ค +subuniverse-aflabby-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ P i f + = (X , a) , c where X : ๐“ค ฬ‡ X = ฮ  (prโ‚ โˆ˜ f) @@ -968,21 +1009,23 @@ Therefore: \begin{code} -subuniverse-ainjective-ฮฃ : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) - โ†’ ainjective-type (ฮฃ A) ๐“ค ๐“ค -subuniverse-ainjective-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ = aflabby-types-are-ainjective (ฮฃ A) - (subuniverse-aflabby-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ) - -subuniverse-ainjective-ฮ  : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) - โ†’ ainjective-type (ฮฃ A) ๐“ค ๐“ค -subuniverse-ainjective-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ = aflabby-types-are-ainjective (ฮฃ A) - (subuniverse-aflabby-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ) +subuniverse-ainjective-ฮฃ + : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) + โ†’ ainjective-type (ฮฃ A) ๐“ค ๐“ค +subuniverse-ainjective-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ + = aflabby-types-are-ainjective (ฮฃ A) (subuniverse-aflabby-ฮฃ {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ) + +subuniverse-ainjective-ฮ  + : (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) + โ†’ ainjective-type (ฮฃ A) ๐“ค ๐“ค +subuniverse-ainjective-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ + = aflabby-types-are-ainjective (ฮฃ A) (subuniverse-aflabby-ฮ  {๐“ค} {๐“ฃ} A ฯ† ฮฑ ฮบ) \end{code} @@ -1088,7 +1131,9 @@ back-and-forth between algebraic injectivity and algebraic flabbiness: \begin{code} ainjective-resizing : propositional-resizing (๐“ค' โŠ” ๐“ฅ') ๐“ค - โ†’ (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“ฅ โ†’ ainjective-type D ๐“ค' ๐“ฅ' + โ†’ (D : ๐“ฆ ฬ‡ ) + โ†’ ainjective-type D ๐“ค ๐“ฅ + โ†’ ainjective-type D ๐“ค' ๐“ฅ' ainjective-resizing {๐“ค'} {๐“ฅ'} {๐“ค} {๐“ฆ} {๐“ฅ} R D i = c where a : aflabby D ๐“ค @@ -1125,7 +1170,11 @@ universe-retract R ๐“ค ๐“ฅ = ฯ , Lift-is-embedding ua c : ainjective-type (๐“ค ฬ‡ ) (๐“ค โบ) ((๐“ค โŠ” ๐“ฅ )โบ) โ†’ retract ๐“ค ฬ‡ of (๐“ค โŠ” ๐“ฅ ฬ‡ ) - c i = ainjective-retract-of-subtype (๐“ค ฬ‡ ) i (๐“ค โŠ” ๐“ฅ ฬ‡ ) (Lift ๐“ฅ , Lift-is-embedding ua) + c i = ainjective-retract-of-subtype + (๐“ค ฬ‡ ) + i + (๐“ค โŠ” ๐“ฅ ฬ‡ ) + (Lift ๐“ฅ , Lift-is-embedding ua) ฯ : retract ๐“ค ฬ‡ of (๐“ค โŠ” ๐“ฅ ฬ‡ ) ฯ = c b @@ -1144,10 +1193,12 @@ publication): \begin{code} -universe-retract-unfolded : Propositional-resizing - โ†’ (๐“ค ๐“ฅ : Universe) - โ†’ ฮฃ ฯ ๊ž‰ retract ๐“ค ฬ‡ of (๐“ค โŠ” ๐“ฅ ฬ‡ ), is-embedding (section ฯ) -universe-retract-unfolded R ๐“ค ๐“ฅ = (r , Lift ๐“ฅ , rs) , Lift-is-embedding ua +universe-retract-unfolded + : Propositional-resizing + โ†’ (๐“ค ๐“ฅ : Universe) + โ†’ ฮฃ ฯ ๊ž‰ retract ๐“ค ฬ‡ of (๐“ค โŠ” ๐“ฅ ฬ‡ ), is-embedding (section ฯ) +universe-retract-unfolded R ๐“ค ๐“ฅ + = (r , Lift ๐“ฅ , rs) , Lift-is-embedding ua where s : ๐“ค ฬ‡ โ†’ ๐“ค โŠ” ๐“ฅ ฬ‡ s = Lift ๐“ฅ @@ -1204,14 +1255,15 @@ is a retract of ๐“ค: \begin{code} -reflective-subuniverse-ฮฃ : Propositional-resizing - โ†’ (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) - โ†’ retract (ฮฃ A) of (๐“ค ฬ‡ ) -reflective-subuniverse-ฮฃ {๐“ค} {๐“ฃ} R A ฯ† ฮฑ ฮบ = - ainjective-retract-of-subtype (ฮฃ A) c (๐“ค ฬ‡ ) (j , e) +reflective-subuniverse-ฮฃ + : Propositional-resizing + โ†’ (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮฃ Y)) + โ†’ retract (ฮฃ A) of (๐“ค ฬ‡ ) +reflective-subuniverse-ฮฃ {๐“ค} {๐“ฃ} R A ฯ† ฮฑ ฮบ + = ainjective-retract-of-subtype (ฮฃ A) c (๐“ค ฬ‡ ) (j , e) where c : ainjective-type (ฮฃ A) (๐“ค โบ โŠ” ๐“ฃ) (๐“ค โบ) c = ainjective-resizing R (ฮฃ A) (subuniverse-ainjective-ฮฃ A ฯ† ฮฑ ฮบ) @@ -1222,14 +1274,15 @@ reflective-subuniverse-ฮฃ {๐“ค} {๐“ฃ} R A ฯ† ฮฑ ฮบ = e : is-embedding j e = prโ‚-is-embedding ฯ† -reflective-subuniverse-ฮ  : Propositional-resizing - โ†’ (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) - โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) - โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) - โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) - โ†’ retract (ฮฃ A) of (๐“ค ฬ‡ ) -reflective-subuniverse-ฮ  {๐“ค} {๐“ฃ} R A ฯ† ฮฑ ฮบ = - ainjective-retract-of-subtype (ฮฃ A) c (๐“ค ฬ‡ ) (j , e) +reflective-subuniverse-ฮ  + : Propositional-resizing + โ†’ (A : ๐“ค ฬ‡ โ†’ ๐“ฃ ฬ‡ ) + โ†’ ((X : ๐“ค ฬ‡ ) โ†’ is-prop (A X)) + โ†’ ((P : ๐“ค ฬ‡ ) โ†’ is-prop P โ†’ A P) + โ†’ ((X : ๐“ค ฬ‡ ) (Y : X โ†’ ๐“ค ฬ‡ ) โ†’ A X โ†’ ((x : X) โ†’ A (Y x)) โ†’ A (ฮ  Y)) + โ†’ retract (ฮฃ A) of (๐“ค ฬ‡ ) +reflective-subuniverse-ฮ  {๐“ค} {๐“ฃ} R A ฯ† ฮฑ ฮบ + = ainjective-retract-of-subtype (ฮฃ A) c (๐“ค ฬ‡ ) (j , e) where c : ainjective-type (ฮฃ A) (๐“ค โบ โŠ” ๐“ฃ) (๐“ค โบ) c = ainjective-resizing R (ฮฃ A) (subuniverse-ainjective-ฮ  A ฯ† ฮฑ ฮบ) @@ -1246,16 +1299,18 @@ In particular (and maybe the ฮฃ version gives n-truncations?): \begin{code} -reflective-n-type-subuniverse-ฮฃ : Propositional-resizing - โ†’ (n : โ„•) โ†’ retract (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n) of (๐“ค ฬ‡ ) +reflective-n-type-subuniverse-ฮฃ + : Propositional-resizing + โ†’ (n : โ„•) โ†’ retract (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n) of (๐“ค ฬ‡ ) reflective-n-type-subuniverse-ฮฃ R n = reflective-subuniverse-ฮฃ R (_is-of-hlevel n) (hlevel-relation-is-prop n) (props-have-all-hlevels n) (hlevels-closed-under-ฮฃ n) -reflective-n-type-subuniverse-ฮ  : Propositional-resizing - โ†’ (n : โ„•) โ†’ retract (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n) of (๐“ค ฬ‡ ) +reflective-n-type-subuniverse-ฮ  + : Propositional-resizing + โ†’ (n : โ„•) โ†’ retract (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n) of (๐“ค ฬ‡ ) reflective-n-type-subuniverse-ฮ  R n = reflective-subuniverse-ฮ  R (_is-of-hlevel n) (hlevel-relation-is-prop n) @@ -1351,17 +1406,25 @@ retracts of exponential powers of the subuniverse of n-types. \begin{code} -ainjective-ntype-characterization : Propositional-resizing - โ†’ (D : ๐“ค ฬ‡ ) - โ†’ (n : โ„•) - โ†’ D is-of-hlevel (succ n) - โ†’ ainjective-type D ๐“ค ๐“ค - โ†” (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of - (X โ†’ ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n)) +ainjective-ntype-characterization + : Propositional-resizing + โ†’ (D : ๐“ค ฬ‡ ) + โ†’ (n : โ„•) + โ†’ D is-of-hlevel (succ n) + โ†’ ainjective-type D ๐“ค ๐“ค + โ†” (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of + (X โ†’ ฮฃ X ๊ž‰ ๐“ค ฬ‡ , X is-of-hlevel n)) ainjective-ntype-characterization {๐“ค} R D n h = (a , b) where a : ainjective-type D ๐“ค ๐“ค โ†’ ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of (X โ†’ โ„ n ๐“ค ) - a i = D , ainjective-retract-sub R (_is-of-hlevel n) (hlevel-relation-is-prop n) D h i + a i = D , + ainjective-retract-sub + R + (_is-of-hlevel n) + (hlevel-relation-is-prop n) + D + h + i b : (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of (X โ†’ โ„ n ๐“ค)) โ†’ ainjective-type D ๐“ค ๐“ค b (X , r) = d @@ -1381,17 +1444,16 @@ In particular, the injective sets are the retracts of powersets. \begin{code} -ainjective-set-characterization : Propositional-resizing - โ†’ (D : ๐“ค ฬ‡ ) - โ†’ is-set D - โ†’ ainjective-type D ๐“ค ๐“ค โ†” (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of - (X โ†’ ฮฉ ๐“ค)) +ainjective-set-characterization + : Propositional-resizing + โ†’ (D : ๐“ค ฬ‡ ) + โ†’ is-set D + โ†’ ainjective-type D ๐“ค ๐“ค โ†” (ฮฃ X ๊ž‰ ๐“ค ฬ‡ , retract D of (X โ†’ ฮฉ ๐“ค)) ainjective-set-characterization {๐“ค} R D s = ainjective-ntype-characterization R D zero (ฮป x x' โ†’ s {x} {x'}) \end{code} - Injectivity versus algebraic injectivity in the absence of resizing ------------------------------------------------------------------- @@ -1399,7 +1461,9 @@ We now compare injectivity with algebraic injectivity. \begin{code} -ainjective-gives-injective : (D : ๐“ฆ ฬ‡ ) โ†’ ainjective-type D ๐“ค ๐“ฅ โ†’ injective-type D ๐“ค ๐“ฅ +ainjective-gives-injective : (D : ๐“ฆ ฬ‡ ) + โ†’ ainjective-type D ๐“ค ๐“ฅ + โ†’ injective-type D ๐“ค ๐“ฅ ainjective-gives-injective D i j e f = โˆฃ i j e f โˆฃ \end{code} @@ -1423,8 +1487,9 @@ From this we get the following. โˆฅainjectiveโˆฅ-gives-injective : (D : ๐“ฆ ฬ‡ ) โ†’ โˆฅ ainjective-type D ๐“ค ๐“ฅ โˆฅ โ†’ injective-type D ๐“ค ๐“ฅ -โˆฅainjectiveโˆฅ-gives-injective {๐“ฆ} {๐“ค} {๐“ฅ} D = โˆฅโˆฅ-rec (injectivity-is-prop D ๐“ค ๐“ฅ) - (ainjective-gives-injective D) +โˆฅainjectiveโˆฅ-gives-injective {๐“ฆ} {๐“ค} {๐“ฅ} D = โˆฅโˆฅ-rec + (injectivity-is-prop D ๐“ค ๐“ฅ) + (ainjective-gives-injective D) \end{code} @@ -1533,9 +1598,10 @@ Injectivity in terms of algebraic injectivity in the presence of resizing I \begin{code} -injectivity-in-terms-of-ainjectivity' : propositional-resizing (๐“ค โบ) ๐“ค - โ†’ (D : ๐“ค ฬ‡ ) โ†’ injective-type D ๐“ค (๐“ค โบ) - โ†” โˆฅ ainjective-type D ๐“ค (๐“ค โบ) โˆฅ +injectivity-in-terms-of-ainjectivity' + : propositional-resizing (๐“ค โบ) ๐“ค + โ†’ (D : ๐“ค ฬ‡ ) โ†’ injective-type D ๐“ค (๐“ค โบ) + โ†” โˆฅ ainjective-type D ๐“ค (๐“ค โบ) โˆฅ injectivity-in-terms-of-ainjectivity' {๐“ค} R D = a , b where a : injective-type D ๐“ค (๐“ค โบ) โ†’ โˆฅ ainjective-type D ๐“ค (๐“ค โบ) โˆฅ @@ -1566,14 +1632,28 @@ import Lifting.EmbeddingViaSIP ๐“›-unit X x = ๐Ÿ™ , (ฮป _ โ†’ x) , ๐Ÿ™-is-prop ๐“›-unit-is-embedding : (X : ๐“ค ฬ‡ ) โ†’ is-embedding (๐“›-unit {๐“ฃ} X) -๐“›-unit-is-embedding {๐“ค} {๐“ฃ} X = Lifting.EmbeddingViaSIP.ฮท-is-embedding' ๐“ฃ ๐“ค X - (ua ๐“ฃ) (fe ๐“ฃ ๐“ค) +๐“›-unit-is-embedding {๐“ค} {๐“ฃ} X = Lifting.EmbeddingViaSIP.ฮท-is-embedding' + ๐“ฃ + ๐“ค + X + (ua ๐“ฃ) + (fe ๐“ฃ ๐“ค) ๐“›-alg-aflabby : {๐“ฃ ๐“ค : Universe} {A : ๐“ค ฬ‡ } โ†’ ๐“›-alg ๐“ฃ A โ†’ aflabby A ๐“ฃ ๐“›-alg-aflabby {๐“ฃ} {๐“ค} (โˆ , ฮบ , ฮน) P i f = โˆ i f , ฮณ where ฮณ : (p : P) โ†’ โˆ i f ๏ผ f p - ฮณ p = Lifting.Algebras.๐“›-alg-Lawโ‚€-givesโ‚€' ๐“ฃ (pe ๐“ฃ) (fe ๐“ฃ ๐“ฃ) (fe ๐“ฃ ๐“ค) โˆ ฮบ P i f p + ฮณ p = Lifting.Algebras.๐“›-alg-Lawโ‚€-givesโ‚€' + ๐“ฃ + (pe ๐“ฃ) + (fe ๐“ฃ ๐“ฃ) + (fe ๐“ฃ ๐“ค) + โˆ + ฮบ + P + i + f + p ๐“›-alg-ainjective : (A : ๐“ค ฬ‡ ) โ†’ ๐“›-alg ๐“ฃ A โ†’ ainjective-type A ๐“ฃ ๐“ฃ ๐“›-alg-ainjective A ฮฑ = aflabby-types-are-ainjective A (๐“›-alg-aflabby ฮฑ) @@ -1593,8 +1673,8 @@ free algebras: ainjective-is-retract-of-free-๐“›-algebra : (D : ๐“ฃ ฬ‡ ) โ†’ ainjective-type D ๐“ฃ (๐“ฃ โบ) โ†’ retract D of (๐“› {๐“ฃ} D) -ainjective-is-retract-of-free-๐“›-algebra D i = ainjective-retract-of-subtype D i (๐“› D) - (๐“›-unit D , ๐“›-unit-is-embedding D) +ainjective-is-retract-of-free-๐“›-algebra D i = + ainjective-retract-of-subtype D i (๐“› D) (๐“›-unit D , ๐“›-unit-is-embedding D) \end{code} With propositional resizing, the algebraically injective types are @@ -1658,7 +1738,8 @@ injectivity-in-terms-of-ainjectivity {๐“ค} ฯ‰ D = ฮณ , โˆฅainjectiveโˆฅ-gives-i injective-retract-of-L i = embedding-โˆฅretractโˆฅ D i L ฮต ฮต-is-embedding L-ainjective : ainjective-type L ๐“ค ๐“ค - L-ainjective = equiv-to-ainjective L (๐“› D) (free-๐“›-algebra-ainjective D) (โ‰ƒ-sym e) + L-ainjective = + equiv-to-ainjective L (๐“› D) (free-๐“›-algebra-ainjective D) (โ‰ƒ-sym e) ฯ† : retract D of L โ†’ ainjective-type D ๐“ค ๐“ค ฯ† = retract-of-ainjective D L L-ainjective @@ -1716,7 +1797,10 @@ whose algebraic flabbiness gives the decidability of P. \begin{code} -aflabby-decidability-lemma : (P : ๐“ฆ ฬ‡ ) โ†’ is-prop P โ†’ aflabby ((P + ยฌ P) + ๐Ÿ™) ๐“ฆ โ†’ P + ยฌ P +aflabby-decidability-lemma : (P : ๐“ฆ ฬ‡ ) + โ†’ is-prop P + โ†’ aflabby ((P + ยฌ P) + ๐Ÿ™) ๐“ฆ + โ†’ P + ยฌ P aflabby-decidability-lemma {๐“ฆ} P i ฯ† = ฮณ where D = (P + ยฌ P) + ๐Ÿ™ {๐“ฆ} @@ -1762,7 +1846,8 @@ excluded middle holds: pointed-types-aflabby-gives-EM : ((D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ aflabby D ๐“ฆ) โ†’ EM ๐“ฆ -pointed-types-aflabby-gives-EM {๐“ฆ} ฮฑ P i = aflabby-decidability-lemma P i +pointed-types-aflabby-gives-EM {๐“ฆ} ฮฑ P i = aflabby-decidability-lemma + P i (ฮฑ ((P + ยฌ P) + ๐Ÿ™) (inr โ‹†)) \end{code} @@ -1772,14 +1857,15 @@ by reduction to algebraic flabbiness: \begin{code} -EM-gives-pointed-types-ainjective : EM (๐“ค โŠ” ๐“ฅ) โ†’ (D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ ainjective-type D ๐“ค ๐“ฅ -EM-gives-pointed-types-ainjective em D d = aflabby-types-are-ainjective D - (EM-gives-pointed-types-aflabby D em d) +EM-gives-pointed-types-ainjective : EM (๐“ค โŠ” ๐“ฅ) + โ†’ ((D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ ainjective-type D ๐“ค ๐“ฅ) +EM-gives-pointed-types-ainjective em D d = + aflabby-types-are-ainjective D (EM-gives-pointed-types-aflabby D em d) pointed-types-ainjective-gives-EM : ((D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ ainjective-type D ๐“ฆ ๐“ค) โ†’ EM ๐“ฆ -pointed-types-ainjective-gives-EM ฮฑ = pointed-types-aflabby-gives-EM - (ฮป D d โ†’ ainjective-types-are-aflabby D (ฮฑ D d)) +pointed-types-ainjective-gives-EM ฮฑ = + pointed-types-aflabby-gives-EM (ฮป D d โ†’ ainjective-types-are-aflabby D (ฮฑ D d)) \end{code} @@ -1787,7 +1873,8 @@ And with injective types: \begin{code} -EM-gives-pointed-types-injective : EM (๐“ค โŠ” ๐“ฅ) โ†’ (D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ injective-type D ๐“ค ๐“ฅ +EM-gives-pointed-types-injective : EM (๐“ค โŠ” ๐“ฅ) + โ†’ ((D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ injective-type D ๐“ค ๐“ฅ) EM-gives-pointed-types-injective {๐“ฆ} {๐“ค} {๐“ฅ} em D d = ainjective-gives-injective D (EM-gives-pointed-types-ainjective em D d) @@ -1813,11 +1900,13 @@ pointed-types-injective-gives-EM {๐“ฆ} ฮฒ P i = e pointed-types-injective-gives-EM' : ((๐“ค ๐“ฅ : Universe) โ†’ (D : ๐“ฆ ฬ‡ ) โ†’ D โ†’ injective-type D ๐“ค ๐“ฅ) โ†’ EM ๐“ฆ -pointed-types-injective-gives-EM' {๐“ฆ} ฮฒ = pointed-types-injective-gives-EM (ฮฒ ๐“ฆ (๐“ฆ โบ)) +pointed-types-injective-gives-EM' {๐“ฆ} ฮฒ = + pointed-types-injective-gives-EM (ฮฒ ๐“ฆ (๐“ฆ โบ)) \end{code} -Alternative, assuming resizing, we can be more parimonius with the injectivity assumption: +Alternatively, assuming resizing, we can be more parsimonius with the +injectivity assumption: \begin{code} @@ -1862,7 +1951,8 @@ Toby Kenney, 2011, Injective power objects and the axiom of choice. https://www.sciencedirect.com/science/article/pii/S0022404910000782 The Univalent Foundations Program, 2013, - Homotopy Type Theory: Univalent Foundations of Mathematics. (HoTT Book) + Homotopy Type Theory: Univalent Foundations of Mathematics. + (HoTT Book) Institute for Advanced Study, https://homotopytypetheory.org/book/ @@ -1875,7 +1965,8 @@ Ingo Blechschmidt, 2018, Flabby and injective objects in toposes. https://arxiv.org/abs/1810.12708 Michael Shulman, 2015, Univalence for inverse diagrams and homotopy canonicity. - Mathematical Structures in Computer Science, 25:05 (2015), p1203โ€“1277. + Mathematical Structures in Computer Science, 25:05 (2015), + p1203โ€“1277. https://arxiv.org/abs/1203.3253 https://home.sandiego.edu/~shulman/papers/invdia-errata.pdf (errata) diff --git a/source/InjectiveTypes/MathematicalStructures.lagda b/source/InjectiveTypes/MathematicalStructures.lagda index 7c42b9019..092c10172 100644 --- a/source/InjectiveTypes/MathematicalStructures.lagda +++ b/source/InjectiveTypes/MathematicalStructures.lagda @@ -5,7 +5,7 @@ such as pointed types, โˆž-magmas, monoids, groups, etc. to be algebraically injective. We use algebraic flabbiness as our main tool. This file is subsumed by [1] and [2], but it is still important for -both the sake of motivation and the fact that is includes useful +both the sake of motivation and the fact that it includes useful discussion, which probably should be read before reading [1] and [2]. [1] InjectiveTypes.Sigma @@ -113,8 +113,8 @@ for any proposition P and any type family A of types indexed by P. With this assumption, we can let the element s be the inverse of ฯ applied to B. -Remark. With regards to the discussion in the introduction of this -file, it is actually enough to require that ฯ is has a section. +Remark. Regarding the discussion in the introduction of this file, it +is actually enough to require that ฯ is has a section. \begin{code} diff --git a/source/InjectiveTypes/MathematicalStructuresMoreGeneral.lagda b/source/InjectiveTypes/MathematicalStructuresMoreGeneral.lagda index 36391c5f8..5527436e8 100644 --- a/source/InjectiveTypes/MathematicalStructuresMoreGeneral.lagda +++ b/source/InjectiveTypes/MathematicalStructuresMoreGeneral.lagda @@ -117,7 +117,7 @@ We work with hypothetical T and T-refl with the following types. \begin{code} - module _ (T : {X Y : ๐“ค ฬ‡ } โ†’ (X โ‰ƒ Y) โ†’ S X โ†’ S Y) + module _ (T : {X Y : ๐“ค ฬ‡ } โ†’ X โ‰ƒ Y โ†’ S X โ†’ S Y) (T-refl : {X : ๐“ค ฬ‡ } โ†’ T (โ‰ƒ-refl X) โˆผ id) where diff --git a/source/InjectiveTypes/Sigma.lagda b/source/InjectiveTypes/Sigma.lagda index 6971b1b32..0ea1c7b1e 100644 --- a/source/InjectiveTypes/Sigma.lagda +++ b/source/InjectiveTypes/Sigma.lagda @@ -16,7 +16,7 @@ Two major improvements here are that 2. We don't restrict to a particular flabiness structure, whereas in [1] we use the ฮ -flabbiness structure. -We have rewritten [1] in [2] to exploit this. +We have rewritten [1] as [2] to exploit this. [1] InjectiveTypes.MathematicalStructures. [2] InjectiveTypes.MathematicalStructuresMoreGeneral. diff --git a/source/UF/Embeddings.lagda b/source/UF/Embeddings.lagda index 4fea55d33..d4275c688 100644 --- a/source/UF/Embeddings.lagda +++ b/source/UF/Embeddings.lagda @@ -612,6 +612,9 @@ Added by Martin Escardo and Tom de Jong 10th October 2023. \begin{code} +id-is-essential : {X : ๐“ค ฬ‡ } โ†’ is-essential (id {๐“ค} {X}) ๐“ฅ +id-is-essential {๐“ค} {X} Z g = id + โˆ˜-is-essential : {X : ๐“ค ฬ‡ } {Y : ๐“ฅ ฬ‡ } {Z : ๐“ฆ ฬ‡ } {f : X โ†’ Y} {g : Y โ†’ Z} โ†’ is-essential f ๐“ฃ