@@ -149,28 +149,6 @@ Maybe-reflect-discrete
149149Maybe-reflect-discrete eq? = Discrete-inj just just-inj eq?
150150```
151151
152- ## Finiteness
153-
154- If ` A ` is finite, then ` Maybe A ` is also finite.
155-
156- ``` agda
157- -- Finite-Maybe
158- -- : ⦃ fa : Finite A ⦄
159- -- → Finite (Maybe A)
160- -- Finite-Maybe ⦃ fa ⦄ .cardinality = suc (fa .cardinality)
161- -- Finite-Maybe {A = A} ⦃ fa ⦄ .enumeration =
162- -- ∥-∥-map (Iso→Equiv ∘ maybe-iso) (fa .enumeration) where
163- -- maybe-iso : A ≃ Fin (fa .cardinality) → Iso (Maybe A) (Fin (suc (fa .cardinality)))
164- -- maybe-iso f .fst (just x) = fsuc (Equiv.to f x)
165- -- maybe-iso f .fst nothing = fzero
166- -- maybe-iso f .snd .is-iso.inv fzero = nothing
167- -- maybe-iso f .snd .is-iso.inv (fsuc i) = just (Equiv.from f i)
168- -- maybe-iso f .snd .is-iso.rinv fzero = refl
169- -- maybe-iso f .snd .is-iso.rinv (fsuc i) = ap fsuc (Equiv.ε f i)
170- -- maybe-iso f .snd .is-iso.linv (just x) = ap just (Equiv.η f x)
171- -- maybe-iso f .snd .is-iso.linv nothing = refl
172- ```
173-
174152# Misc. properties
175153
176154If ` A ` is empty, then a ` Maybe A ` must be ` nothing ` {.Agda}.
@@ -230,6 +208,11 @@ map-<|> (just x) y = refl
230208map-<|> nothing y = refl
231209```
232210
211+ ## Injectivity
212+
213+ We can prove that the ` Maybe ` {.Agda} type constructor, considered as a
214+ function from a universe to itself, is injective.
215+
233216``` agda
234217Maybe-injective : Maybe A ≃ Maybe B → A ≃ B
235218Maybe-injective e = Iso→Equiv (a→b , iso b→a (lemma e) il) where
@@ -267,7 +250,10 @@ Maybe-injective e = Iso→Equiv (a→b , iso b→a (lemma e) il) where
267250 (λ e' → is-right-inverse (maybe-injective e') (maybe-injective (Equiv.inverse e)))
268251 {Equiv.inverse (Equiv.inverse e)} {e}
269252 trivial! p
253+ ```
270254
255+ <!--
256+ ```agda
271257Maybe-is-sum : Maybe A ≃ (⊤ ⊎ A)
272258Maybe-is-sum {A = A} = Iso→Equiv (to , iso from ir il) where
273259 to : Maybe A → ⊤ ⊎ A
@@ -286,3 +272,4 @@ Maybe-is-sum {A = A} = Iso→Equiv (to , iso from ir il) where
286272 il nothing = refl
287273 il (just x) = refl
288274```
275+ -->
0 commit comments