I am starting here with a sequence of articles about basic mathematical concepts. I am trying to keep everything as simple as possible, even trivial. I think anybody with a very modest level of basic education can understand these simple concepts. During the course of these articles, it will become clear what this is good for. I am doing this to establish concepts I can later use without explaining them again, so I am working on the language so that, using the concepts established before, every further step is going to be just as simple as the previous one (I hope). The goal is to develop a number of philosophical arguments, so I am tagging this article as “Philosophy” although in itself, it does not look like philosophy yet. This is part of the project roughly outlined in my creativity roadmap article. My main goal here is that everything should be easy to understand. There might be loose ends, I am not trying to come up with exact formal definitons. I might fill in some details later and refine or extend some points in later articles.

So here we go:

First we define what we mean by the term **natural number. There are three rules:**:

- 1 is a natural number.
- If you add 1 to a natural number, you get another natural number (its successor).
- All natural number can be generated in this way.

You can take these simple rules as the basis for a definition of the set of natural numbers. Adding 1 repeatedly is an operation we call counting. So the natural numbers can be defined by the act of counting.

So the natural numbers are 1, 2, 3, 4 and so on (1, 1 + 1, 1 + 1 + 1, 1 + 1 + 1 + 1 …).

Secondly, we define what we mean by a **function**. So what do I have in mind if I am talking about functions?

Think of a table with just one column. The rows are numbered 1, 2, 3 etc. (info infinity). So there is a row for each natural number. Written into each row of the table, there is a natural number as well. Such a table is a function. We can view the row-number (the “argument” as an input and the value in the row (the “value” of the function) as an output. We can give the function a name. In examples, mathematicians often use the letters “f” and “g” to denote different functions, but sometimes, other letters or other names are used. These letters do not really matter. They are just used to talk (or write) about functions.

Readers with a background in mathematics will notice that we are not talking about continuous functions here. I am restricting the discussion here to functions of natural numbers whose values are natural numbers as well. That is actually all I need here. So if I say “function” I just mean these simple things with natural numbers as inputs and outputs.

A function that has a value for each argument is called a **total function**.

If we think of the function as a table that would mean that there is a value in each row. There can also be functions that are not total. If we view such a function as a table, it would contain rows or cells without a value. Such a function is not “defined on” all of its inputs. A total function, on the other hand, *is* defined on all its inputs, i.e it assigns a value to every number in its input.

The third thing we will be looking at is **programs**.

An intuitive understanding of this concept will do for the time being. If you do not know how to program a computer, no problem (and you will not and need not learn it by following this series of articles, this is not a programming course). To understand this article and the following ones, you don’t need to know how programs work. However, most people now own a computer of one kind or the other (e.g. a smartphone or a laptop) so I guess that most people will have some intuitive understanding of what such a machine can do. Basically, programs have inputs and outputs. You put in some data, it does something (it “computes” or “calculates”) and then, some result is coming out.

We can relate this to the concept of functions. Computers can be programmed to calculate functions, especially functions whose inputs and outputs are natural numbers. A programmer can write a program that takes a number as an input and puts out a number as an output.

We cannot write down an infinitely long table, but if we have learnt to program a computer, we could write a program that produces the value of a function if we put in the argument. If we put in the number 5, it would produce the value of row 5. If we put in 1092, it would produce the value of the function at row 1092. For example, we could write a program that adds 1 to its input. It calculates the successor function. If you put in 1, it produces 2. If you put in 5, it produces 6. If you write this function as a table, rows 1, 2, 3, 4, will contain the values 2, 3, 4, 5, and so on. Another function would calculate the value 5 for every input. Such a function is called a constant function. In the table of such a function, each row would contain the same number, 5. Of course, these are very simple examples. Much more complicated functions can be thought of and programs to calculate them can be written by a programmer.

More on programs in some subsequent articles (and more on numbers and functions and some other stuff as well).

At this point, I hope the only thing you might not understand (yet) is: what is this good for. But that is a question mathematicians – and philosophers – are always facing. Maybe being a philosopher means to continue despite that question. Interesting insights can be gained on the way. Stay tuned.

(The picture is from https://commons.wikimedia.org/wiki/File:Un1.svg)

[…] data, but to make mathematical analysis easier, mathematicians often restrict themselves to functions whose inputs and outputs are natural numbers. We have seen in a previous article how the concept of […]