I'd like to have suggestions (maybe existing well-established practice?) for rigorous notation of certain operations on functions and function spaces (with the category of sets in mind, so no additional implied structure).


  • the requested notation is intended to be used in / processed by a computer system (as opposed to human reading only); therefore, it needs to be 100% accurate and must be fully explicit and unambiguous (cannot use implied contextual information, for example)

  • the term "function" is used in the category theory sense, i.e. each function's definition includes the domain, the codomain and the graph of the function. Two functions are considered identical iff all three of the above are identical. (In fact, defining the graph establishes the domain as well, but it is customary to have it separately anyway. However, for a given graph, all sorts of different codomains may be chosen, each yielding a different function in the intended sense.)

  • I know that some of the guys here have an urge to respond to such questions with "use whatever you like but define your notation". I am well aware of that, but the reason for asking a community is to find notation which is intuitive and not arbitrary, so I would appreciate actual suggestions, if possible.


These are the spaces I need notation for:

(1) Set of functions with given domain $X$ and codomain $Y$. This is the most basic one. Note that only functions with domain / codomain matching exactly should be included. Existing notation that may be considered: $X \rightarrow Y$, $X \longrightarrow Y$, $Y^X$. The shorter arrow is used as a logical operator for implication, so the longer arrow is preferred.

(2) Set of functions with given domain $X$, and codomain $Y ^\prime \subset Y$ (for given $Y$). Very similar in concept to (1). In practice, it is customary not to make a difference at all between (1) and (2). However, because of the nature of the use case, a different notation is required, as the sets defined by (1) and (2) are different sets.

(3) Same as (2) but limited to functions that are surjective to their own codomain. This is an important practical concept: the set constructed this way essentially has a "canonical" representant member for all graphs mapping $X$ to $Y$ (namely, the function whose codomain is equal to its image). (2) does not have this property: any given graph (unless surjective to the whole $Y$) will have different representants (by choosing $Y^\prime$ to be a set containing the image, each such $Y^\prime$ will yield a different function by definition)

Union of functions

(4) Given two functions, $f : X \longrightarrow Y$ and $g : Z \longrightarrow W$, one can take the pairwise union of the domains, the codomains and the graphs. However, the "object" constructed this way is not necessarily a function. Therefore, the notation $f \cup g$ is not expressive enough in all scenarios. There are three possible scenarios and maybe required notations:

(4a) "disjoint function union" : operator which is only valid if the domains of $f$ and $g$ are disjoint. Maybe something like $f \sqcup g$?

(4b) "matching function union" : this operator would yield a valid value if $f$ and $g$ are identical on the intersection $X \cap Z$. Maybe something like $f ⊍ g$?

(4c) "overriding function union" : this operator would always yield a function. On the intersection of the domains, $g$ would "override" $f$ (I know wikipedia suggests the circled plus operator for this, but, frankly, I have never met anyone using that operator for this purpose)

Union Space

(5) In practical scenarios it would be nice to construct the following space as well: given an arbitrary $X = \lbrace x_1, x_2, \ldots, x_n \rbrace$, and arbitrary sets $Y_1, Y_2,\ldots, Y_n$, the set of functions that contains all $f$ such that the domain of $f$ is $X$, the graph satisfies $\forall i f(x_i) \in Y_i$, and the codomain of f is equal to the range of $f$. Note that $X$ is finite in practice but $Y_i$ can be any set. Of course, this can be naturally extended to infinite $X$ as well.

Extension of the codomain of a function

We all know the notation for restriction: for the function $f:D \longrightarrow C$ and any $D^\prime \subset D$, the notation $f|_{D^\prime}$ defines a new function $f|_{D^\prime}:D^\prime \longrightarrow C$, with the graph of this new function being equal to $f \cap (D^\prime \times C)$.

(6) A very similar concept would be to extend the codomain, i.e. for a function $f:D \longrightarrow C$ and any $C^\prime \supset C$, we can construct the new function, which has the same graph as $f$, but the codomain is extended to be $C^\prime$. I have never seen notation for that, though.

  • $\begingroup$ in fact (4a) has already been asked here: math.stackexchange.com/questions/1527314/…, but has no accepted answer. $\endgroup$ – balage Mar 23 '18 at 14:03
  • $\begingroup$ (4b) has been asked here: math.stackexchange.com/questions/2228457/… . The accepted answer suggests plain union, but for my purposes, that is not satisfactory, so I ask for other suggestions. $\endgroup$ – balage Mar 23 '18 at 14:18
  • $\begingroup$ On this website it's generally agreed that there should only be one question per post. You're asking six. The fact that some of your subquestions are duplicates but not the others is a real problem. Also "some of the guys here" means basically pretty much any mathematician mature enough to realize that notation isn't something that's "rigorous" or not, it's how you define it. You can write $1 🐎 1 = 2$ and it will be rigorous if you define 🐎. For an extreme example, read Principia Mathematicae. $\endgroup$ – Najib Idrissi Mar 23 '18 at 14:18
  • $\begingroup$ The reason for asking them together is that for my purposes the integrity of the different symbols is also important. if (1), (2) & (3) were asked separately, probably all would have the same answer, $X \rightarrow Y$ $\endgroup$ – balage Mar 23 '18 at 14:29
  • $\begingroup$ @Najib: I think that this is not really six questions. It's just a notation related question. $\endgroup$ – Asaf Karagila Mar 23 '18 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.