-
Notifications
You must be signed in to change notification settings - Fork 251
Description
Could we have some clarifying comments added to the stdlib about the definition of surjection actually being the definition of split surjection? It would be helpful to people such as myself that continue to have trouble with the overloading of meaning in mathematical discourse. Example:
http://web.archive.org/web/20211026191457/https://twitter.com/EscardoMartin/status/1453039001783439370
(Andrej Bauer) Your definition of surjective is incorrect. Surjectivity is not definable in pure MLTT. Martín Escardó's notes elaborate on this in a nice way.
(Martín Escardó) We can say a bit more: your definition gives the notion of split surjection, that is, a surjection f with a right inverse g (meaning that f after g is the identity function).
Such clarifying comments can be found in @nad’s work:
http://www.cse.chalmers.se/~nad/listings/equality/Surjection.html
As a side note, I love how the linked code clearly states the following definition. I challenge you to locate this definition in the stdlib.
Split-surjective :
∀ {a b} {A : Type a} {B : Type b} → (A → B) → Type (a ⊔ b)
Split-surjective f = ∀ y → ∃ λ x → f x ≡ y