1

I think the terms "injection" and "surjection" are related to the codomain of a function, because when one say "this function is injective/surjective", it constrains the image of the funtion not to overlap/leave some elements in the codomain respectively. Are there any dedicated terms to constrain about not the codomain but the domain of a function (or relation?) in the same way?

(Context: I want to use such terms if exist, in my own programming language's documentation, in order to indicate a hashtable lookup function should always returns a single value (without "option" or similar) corresponding to the argument, if the hashtable is properly typed. My language's type system has some abstraction between exhaustiveness of patterm-matching and hashtable lookup.)

yuhr
  • 13

1 Answers1

1

At least one output

When discussing relations in general, there is precedent for "cosurjective" or "co-surjective". John Carlos Baez uses these terms in a Twitter thread and Kyle Miller uses them in "The theory of relations". This is similar to the category theory convention of using "co-" to denote a reversal of domains and codomains.

Some other terms are "serial" and "left-total". For "left-total", Wikipedia cites Mathematical Foundations of Computational Engineering: A Handbook, Semantics of Sequential and Parallel Programs, and Modelling of Concurrent Systems: Structural and Semantical Methods in the High Level Petri Net Calculus.

In a context like a complex analysis textbook, a relation with this property may be called a "multivalued function", a "multifunction", a "many-valued function", or perhaps/arguably a "set-valued function". For example, a multivalued square root function would take any complex number as input, but would output a pair of square roots (except at $0$). These terms are likely only used when the emphasis is on the possibility of more than one output, and they might even be used by some when, say, not every complex input produces an output.

Another term, mentioned in the comments, is "defined everywhere" (or "everywhere-defined"). See A function that is defined everywhere but has unknown values [closed] on MathOverflow or Function defined everywhere but continuous nowhere on MathSE for positive examples, and Oliver Knill's lecture notes on limits and What is the limit of a function which is not defined everywhere? on MathSE for negative examples. This phrasing is used most often in cases like real-valued Calculus where it's already assumed that there is at most one output and we want to talk about things using function notation/terminology. In these contexts especially, the adjective "total" or the phrase "total function" may be used.

At most one output

Similarly to "cosurjective", there is the same precedent for "coinjective" or "co-injective".

Some other terms are "functional", "right-unique", "right-definite", and "univalent". For "right-unique", Wikipedia cites the same sources as for "left-total". For "right-definite", it cites Reasoning on Spatial Semantic Integrity Constraints. For "univalent", it cites a sci.physics.research post by John Carlos Baez.

In computer science especially, I see these relations called "partial functions". There is even special notation when this term is used. Instead of $f:X\to Y$, something like $f:X\not\to Y$ is sometimes written.

Occasionally I see "well defined" used for these relations, as in Function defined everywhere but continuous nowhere and outlined on Wikipedia. But I would not recommend this usage because the phrase has other meanings/implications. Perhaps most commonly, "well defined" usually carries extra baggage of a definition based on representatives of an equivalence class, and it's "well defined" from the set of equivalence classes if it yields the same result for all members of the class. Wikipedia also mentions well-defined notation and a special meaning in the context of partial differential equations, if MathWorld is to be believed.

Mark S.
  • 23,925