3.1.2 - functions

3.1.2

Introduction to Functions

Introduction

Functions are ubiquitous in modern mathematics, science, and engineering. They are also fundamental to the field of googology, the study of large numbers. You may have heard the term "function" used in math class before, but what precisely is a function? In this article we will develop a sufficiently expansive definition of a function for our purposes. This will become the basis for our development of the recursive functions and large numbers for the rest of Section III and Section IV.

It will be assumed from Section III onwards that the reader is familiar with the following mathematical concepts*:

  • The basic classifications of numbers: Counting, Whole, Integers, Rationals, Reals, Complex...

  • Sets

  • The seven elementary arithmetic operations: addition, subtraction, multiplication, division, exponentiation, extraction of roots, and computing logarithms.

  • The meaning and uses of variables in mathematics, especially as independent-variables

    • Fundamental notions of arithmetic (ie. communitivity, order of operations, etc.)

*Note: Some of these topics have not been reviewed with sufficient depth earlier in the text at the present. However in the future I will be providing detailed information on these topics in Section I. Once I do so I will provide links to those articles here so that readers can brush up on them if need be.

Essentially I will assume the reader has a high school proficiency in mathematics up to algebra. Graphs are of minimal importance to us here, so don't worry if aren't too familiar with graphing techniques. The concept of what a variable is will be far more important here than advance knowledge of solving for the variable. If you know what a number, an operation, and a variable is, then that should be sufficient.

A General Definition of a Function

A function is a fundamental concept in mathematics, just like the concept of a number, or a set, and can not be broken down into more fundamental concepts.

In the most general sense a function is simply something which takes input and produces a single output in response.

A "computer" is a "function" then in this most general sense. It takes in "input" in the form of key-presses and mouse-movements, as well as internal states, and produces an "output" in the form of the monitor display, audio output, and any of a variety of other outputs (ex. print-outs).

So our first conception of a function, and our definition will basically be that a "function" is a kind of "machine" or "black box" which takes in input, processes that input in some way or another, and then produces a corresponding output. One important aspect of a function is that it is deterministic. What this means is that if we feed it exactly the same input, it will always produce exactly the same output. Every input must be mapped to one, and only one, output. This is not to say that different inputs may not produce the same output. That is perfectly fine. But each individual input has a signature output which never changes.

The following diagram provides a conceptual model for what a function is:

We can see that every function then has three phases. The first is an input phase in which a set of input is decided and "put into the function". The second is the processing phase where the "function" processes the input. The third and final phase is the output phase, where the processing is completed and a unique output is determined and presented.

The beauty of this definition is that it is completely general and elegantly simple. We need not explain how the function processes the input into output, as we could imagine it as occurring internally to the function and hidden from view. Furthermore we needn't even know what form the input or output takes. They can take "any" form.

There is one question this raises however: can the function always produce an output for any kind of input? Even in the most general sense this would be a bad definition for a function, for its clear that some restriction on meaningful inputs should be made. So we add an important caveat: that there is always a restricted set of legal inputs defined for every function. This may be defined in advanced, or it may be a natural consequence of the nature of the function itself, but we place this one important demand upon the function: That it must map a single output to every legal input. The set of legal inputs is known as the Domain of the function. The set of all possible outputs for every legal input we will call the Image of the function.

So what happens when we put an illegal input into the function? Well if we have defined the Domain in advance we can say that the function does nothing really. It simply rejects the input, and outputs something like "invalid input", "outside Domain", "error", "NaN", or "undefined". We can decide in advance how we want the function to respond in these instances, and it's up to the architect of the function to determine what the response should be. One might argue that all of these "reponses" are themselves outputs, so how can they be the result of something outside the Domain? However we make a distinction here between the ordinary outputs and these "exceptions". You can think of it like this: our function/machine simply crashes when we give it an invalid input, it doesn't have a proper output, it's output is the absence of one because it is never able to actually process it and come up with an intelligible output. The output message, typically an "error message" for computer systems, and "undefined" in mathematics, is merely a warning issued to signify a failure to compute. It is not itself the result of the computation.

So to clarify, the Domain is the set of only those inputs that result in a proper output. Therefore we might not necessarily know the Domain in advance. Certain inputs may result in undefined values. Typically in precalculus, and calculus we encounter undefined values when a division by zero has occurred. Other ways of obtaining undefines include taking the even root of a negative number, taking the logarithm of a negative number or zero, etc. In these instances the Domain is only the set of inputs that results in "defined outputs".

This is the way that Domain is usually explained in college math courses. There is usually little confusion here because implicitly the set of test values is almost always the real numbers. Thus it is understood that the Domain of the function must either be the real numbers (when there are no undefines), or it must be a proper subset of the real numbers (when some undefines exist). However in googology, we will want to make a distinction when the set of test values is either the real numbers, integers, or counting numbers. A function may potentially have no undefines over the real numbers, but we are often interested in restricting the function to only integer or natural values. In case we would not say that the Domain is the real numbers, but rather we would say the Domain was the integers, or naturals. This means we must make an additional distinction that professional mathematics usually glosses over: that there is an implied set of test values for the input. Even if there maybe input values which result in defined outputs, we wouldn't say they are in the Domain if they are outside of the implicit test values. For example, in precalculus the professor would say the domain of a polynomial function is all real numbers, even though it is also true that putting in a complex input will not result in an undefined, and some will even result in an output of a real number!

So I propose the term boundary to mean the set of test values for any function. By this definition, the boundary of a function is either identical to the domain, or is larger, in the sense that the domain would either be the boundary, or a proper subset of it.

The term boundary will almost always be synonymous with domain for most of the functions we will consider. That is because almost all the functions we will be interested in will have the convenient property that they are guaranteed to produce an output for any integer or natural number. This property is highly important in googology, even more so than in other areas of mathematics because we can't go and directly compute many of our "results". Therefore we must know in advance that our function can not fail for any of the boundary values.

Most of the functions we will be working with are what are known as total functions. The concept of boundary makes the concept much more natural to explain than merely the notion of a domain. Basically a total function is one which produces an output for any value within it's boundary. In other words, a total function is any function whose domain is identical to it's boundary. Typically the boundary/domain of our total function will be the Counting Numbers. In contrast a Partial function, is one which produces undefined outputs for some of its boundary values. In other words, a partial function is any function whose domain is a proper subset of it's boundary.

With those definitions in mind we can say that in the most general sense a function is defined by the following properties and limitations:

    • A function is anything which associates a single deterministic output within it's Image for any particular input within its Domain

    • The generality of this statement is very powerful. In fact, that's the problem. It is so general that almost anything can be thought of as a function! Even a living thing can be thought of as taking in input (food, water, air, external and internal stimulus), and producing an output (external behavior, and internal thought). It's so general that it doesn't serve our purposes very well. We will therefore develop a more narrow definition.

Restricted Image Functions

Firstly we want to restrict the Image of the functions under consideration. Since we are primarily interested in the mathematical properties of functions it seems reasonable to restrict the discussion only to mathematical functions. What is a mathematical function? This also can be very general. In the most general sense a mathematical function is anything which produces a mathematical expression as output.

In other words, a mathematical function is a function whose Image is a subset of all mathematical expressions. Again, that is still far too vague and general for our purpose here (Later we will find a purpose for this more general set of functions).

Since our primary purpose here is to generate large numbers we are primarily interested in functions which produce only numerical output. These I will refer to as the numeric functions. Even this object of mathematical study is exceptionally vast and complex. We still have put no limitations on what kind of input can be used, or how it is to be processed into a numerical output. Furthermore, we know there are many kinds of numbers, and as of yet we have no specific restriction on the kinds of numerical output allowed.

As such we still haven't hit upon a definition of a function restricted enough for our purposes. We return then to look at our initial goal: to define the largest positive integer we can. Since the sequence of integers has a definite order, saying one integer is larger than another becomes meaningful. While restricting ourselves only to the integers has some nice advantages, there are instances when a more general understanding of numbers is needed to achieve certain useful results in our theory of integers. How general should our investigation into numbers be then? I suggest the following guideline:

    • Any numeric set which can be put into an ordered relation with itself and the set of integers is eligible for consideration in a large number contest

This condition is simple and general. Anything broader would require a new definition of what it means to say a number is "larger" than another. The properties we want for any number set which can be used in a large number contest are the following:

  • For any two unique members of the set, "x" and "y", one of the following must hold: x<y , y>x

  • For any three unique member of the set, "x", "y", and "z", if x<y and y<z then x<z

  • If x=y, then "x" and "y" must be the same number

  • for any member of the set, x, and any integer, i, one of the following must hold: x>i, x=i, x<i

The largest of the conventional number sets with these properties is the set of real numbers (we'll exclude the set of surreal numbers here, in part because numeric infinities are contemptible in googology, and it wouldn't further our goal of defining the largest positive integer we can). Thus this is the largest set which we are interested in. Thus we will restrict our discussion only to functions whose output is always a single real number. These are the real functions.

In general however, the largest set of numbers I recognize are the Complex Numbers. The reason for this is that even though there are larger Number sets, such as the Quaternions, Octonions, and even Sedenions, their relation to quantity becomes more and more remote. While one might argue that even Complex Numbers are far from the concept of quantity ( how can you have 2+3i gallons of milk for example), they are related to quantity through an extended arithmetic system.

If you consider the Natural Numbers and Addition as the fundamental notion of quantity and operation, then anything extending these basic concepts is an extended notion of quantity and operation. Addition can be used to define its inverse, Subtraction. With Addition and Subtraction the Natural Numbers can be extended to the Integers. Repeated Addition defines multiplication, and the inverse of multiplication is division. Under the four fundamental operations, addition, subtraction, multiplication, and division, the Integers are extended to the set of Rational Numbers. Repeated Multiplication defines exponentiation, whose inverses are the root and the logarithm. When these are applied to the rational numbers, we enter the realm of non-rational algebraic numbers, transcendental numbers, and non-real Complex Numbers. Adding additional operations and concepts stemming from the initial operators results in filling out the Complex Number field. Although the system is not closed (division by zero is undefined), no larger well defined set of Numbers emerges. The Complex Numbers are large enough to contain all algebraic numbers and then some. In some sense the Complex numbers complete the notion of quantity, arithmetic and algebra, and have many beautiful properties.

The introduction of Quaternions however, is very different. They don't emerge as the solutions of arithmetic and algebra as the Complex Numbers do. Rather they were created as a way to extend the Complex Numbers to higher dimensions. This was not motivated by gaps in the system of numbers. In this sense the creation of the Quaternions was superfluous. Later it was discovered that the Quaternions could be applied to the mechanics of 3-dimensions to express rotations in space. In other words, the Quaternions are useful for "quantifying" rotations, so in a sense are numbers, but they do not emerge from the arithmetic of integers. There is no set of elementary operations that can be performed on Complex Numbers to produce a Quaternion, and in this sense they are remote, and beyond the scope of arithmetic. This is even more so the case for Octonions and Sedenions.

Furthermore, Quaternions, Octonions, and Sedenions do not have some of the fundamental properties of Arithmetic Numbers. For example the product of Quaternions is non-communitive, the product of Octonions in addition to this are also non-associative, and the product of Sedenions is neither communitive, associative or alternative. The Complex Numbers on the other hand have all of these properties, just as the Real Numbers do. Hence, the Complex Numbers can be thought of as the largest set possessing certain desirable properties in common with the Real Numbers.

Thus, for our broader discussions of number, for the purposes of googology, we never need to go beyond the Complex Numbers, and rarely need to discuss anything beyond the real numbers. In fact we will quickly find it impractical to work with anything other than whole numbers.

With that in mind we can classify various kinds of functions by the smallest set of numbers which contain their Image. Here is a list of the main ones we will be interested in:

Complex-valued functions : Functions whose Image is a subset of the Complex Numbers

Real-valued functions : Functions whose Image is a subset of the Real Numbers

Rational-valued functions : Functions whose Image is a subset of the Rational Numbers

Integer-valued functions : Functions whose Image is a subset of the Integers

Whole-valued functions : Functions whose Image is a subset of the Whole Numbers

Natural-valued functions : Functions whose Image is a subset of the Natural Numbers

We will mainly be interested in real-valued, integer-valued, whole-valued, and natural-valued functions.

So far we still have made no restrictions on the first two phases of the function, namely, the input and processing phases. In order to have a meaningful discussion about real functions we must also consider making reasonable limitations on these phases.

Restricted Domain Functions

We will now explore how we might restrict the Domain of the functions. Potentially allowing absolutely anything into the domain of real functions leads to a degree of unintelligibility which explains very little about how functions actually work. To speak meaningfully about how functions convert input into output, we need to limit the kinds of input our functions will process.

The most natural choice would seem to be to restrict the Domain to only numerical inputs, just as we restricted the Image to only numerical outputs. Again we must restrict what we mean by number.

As with Image, it seems reasonable to restrict the Domain to nothing larger than the Complex Numbers. A function whose Domain is a subset of the Complex Numbers is called a function of a Complex Variable.

Obviously we can likewise define functions of a real, rational, integer, whole, and natural variable as well.

Restricted Domain & Image Functions

It is often appealing to have a function whose Image and Domain is a subset of the same set of numbers. Technically we can call a function whose Image and Domain is a subset of the Complex Numbers a Complex-valued function of a Complex Variable. However for brevity we may simply refer to this as a Complex-to-Complex function. In this naming scheme an X-to-Y function is one whose boundary is X and Image is a subset of Y.

If we go ahead and restrict both Domain and Image to the real numbers we obtain the real-to-real functions. This class of functions has many desirable properties. For one thing, we can graph real-to-real functions onto a graph, where the horizontal axis corresponds to input and the vertical axis corresponds to output.

More often however, we will be interested in integer-to-integer functions, or even natural-to-natural functions. Even though these classes are much smaller than the real-to-real functions, they are still inconceivably vast. These will be our primary object of study.

Notice that I still have not limited the "process phase" in any way. That means the number of functions is still vast. However, by restricting the Domain and Image, I do restrict the process in one important way. However it is carried out it must be similar to one member of the class of restricted functions. Basically we can dispense with the "process phase" altogether, by conceiving of functions as simple maps. Each input in the domain is simply "mapped" to some output in the Image. Any such map is a function, and any process which defines such a map is a function. Thus in this way we can talk meaningfully about the infinite class of real-to-real functions, or integer-to-integer functions. As we will discover later however, under this definition there are certain functions (or maps) which can not be described by a "process". These are known as the non-computable functions. We will not be discussing these until much later.

Conclusion

As we have seen the concept of a function is very general. Because we are only interested in functions as a mathematical construct for generating large numbers we will restrict the discussion of functions only to mathematical-to-mathematical functions. That is, functions which take a mathematical expression as input and produce another mathematical expression as output. Furthermore we will consider "numbers" as simply a subset of mathematical expressions, so this will also include mathematical-to-numeric, numeric-to-mathematical, and numeric-to-numeric functions. So from this point onwards, when I use the term function I will only be speaking about the class of mathematical-to-mathematical functions.

In the next article we will explore the numeric-to-numeric functions. These are known as "functions of a single variable". These are the simplest of functions to consider, and they will form the basis of our understanding of how functions work.