Addition, subtraction, multiplication, division, exponents, roots, are all just abstractions, or syntactic sugars representing different combinations of a basic building block, from here further called a primitive.

Understanding a primitive means one has the basic datum from which to align all data built from the primitive. It simplifies and explains all abstraction, syntactic sugar, and other building blocks built from it.

One can think of this like a triangle. At the very tip is the basic primitive(s). As you go down from the tip the triangle gets wider. The wideness is more abstraction, syntax, data, complexity. If one were to take a view from the base toward the tip, one would immediately see all the abstraction, all the data, all the complexity. It could look like one big unwieldy mass of unexplained stuff. To a greater or lesser degree I think this is what a lot of people see when they first look into a science or a technology.

If you understood the primitive(s) and looked into the triangle from the opposite direction, from the tip towards the base, aligning data from the tip forward, you could understand the whole subject. The outer complexities are explained and simple.

In this post, the primitive I am talking about is the idea "one more", or "add one" or 1+. That's all that addition, subtraction, multiplication, division, exponentiation and roots are. Related subjects built entirely from these things are also just "one more".

So, here's how you build up math with plus one:

A number besides 1 is our first abstraction, or syntactic sugar. A number is just short hand for 1+ a number of times. Example:

5 = 1 + 1 + 1 + 1 + 1

**Addition** is short hand for adding a number of plus ones to another number of plus ones:

5 + 3 = (1 + 1 + 1 + 1 + 1) + (1 + 1 + 1) or 5 + 3 = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1

**Multiplication.** Since the addition abstraction is now defined, I'll use that abstraction to build further abstractions, starting with multiplication. Multiplication is short hand syntax for starting with a value 0 and adding a number a number of times.

5 * 4 = 20 means 4 + 4 + 4 + 4 + 4 = 20

**Subtraction** is an abstraction or short hand way of adding negative numbers.

10 - 3 = 7 means: 10 + (-3) = 7

**Negative numbers.** Zero is nothing or zero +1s. Less than zero +1s is a negative number. An abstraction for one less than zero +1s could be represented as "-1". Example:

-7 = -1 - 1 - 1 - 1 - 1 - 1 - 1 Another example: 5 + (-3) Same as: 1 + 1 + 1 + 1 + 1 - 1 - 1 - 1 = 1 + 1

**Division** is how many times you can add a negative number to a number to get 0.

6 / 2 = 3 or (1 + 1 + 1 + 1 + 1 + 1) / (1 + 1) = (1 + 1 + 1)

Math doesn't have an alternative equation syntax to express what the division abstraction is doing. Therefore I have made up a syntax that shows what division is doing.

The parts that are enclosed by the bars is a counter that gets incremented each time a subtraction occurs. When the number being subtracted from reaches 0 the counter value is returned as the value of the equation.

6 / 2 is equal to this syntax: 6 - 2 |0 + 1| 4 - 2 |1 + 1| 2 - 2 |2 + 1| = 3 or taking out the abstraction of subtraction: 6 + (-2) |0 + 1| 4 + (-2) |1 + 1| 2 + (-2) |2 + 1| = 3 and taking out the abstraction of numbers: 1 + 1 + 1 + 1 + 1 + 1 - 1 - 1 |+ 1| 1 + 1 + 1 + 1 - 1 - 1 |1 + 1| 1 + 1 - 1 - 1 |1 + 1 + 1| = 1 + 1 + 1

How exponents and roots are built up from +1 and/or its abstractions is left to the reader.

#### Comments

30 September 2007

> Less than zero +1s is a negative number

Stack overflow.

I'm not sure of what you're trying to show here. Isn't the inductive definition of natural numbers easier to explain (for example your definition of multiplication clearly lacks something), while more formal and solid, and useful ?

30 September 2007

I'm just showing that math can be built up with the basic primitive +1, and also perhaps a less basic primitive -1.

Yes, using induction over natural numbers to prove these properties seems like a good idea.

What's multiplication lacking?

sigfpe.blogspot.com

30 September 2007

Check out Peano arithmetic: http://en.wikipedia.org/wiki/Peano_axioms

It's a fun exercise to define a Peano integer type in Haskell and then implement the arithmetic operations for them without using the built in numeric types (which would, of course, be cheating). (And more fun, not to define a single Peano numeral type, but to represent each Peano numeral as its own type.)

You might also find ordinal arithmetic interesting: http://en.wikipedia.org/wiki/Ordinal_arithmetic It starts with the "one more" idea and then extends that with a "keep doing that forever" operation.