Deriving Universal Math

This is an attempt to derive math from the last post, the laws of thermodynamics as they might apply to information.

To recap:

Law 0: If two magnitudes are both equivalent to a third magnitude, they are also equivalent to each other.

Law 1: Selected magnitudes can not be transformed to have more or less potential information, but they can be transformed in any other way that does not violate these laws.

Law 2: All measurements must be derived from a directed gradient, where the fluctuations while measuring are not greater than the stated precision.

Law 3: Change tends to obscure past states, and reveal patterns that may predict future states. As change approaches true randomness, information approaches zero in both directions.

1.0 Measurement

There are many paths to deriving universal math from first principles. Traditionally we start with something like an infinitely small point in space, an empty set, a basic symmetry, or even an apple. As simple as these seem, they are all complex concepts filled with prerequisite information.

This approach will use a simple sensor as a model. We don’t know where it is, we don’t know how it is calibrated, and we don’t even know what it is sensing. It could be biological or electronic. Finally, the output of this sensor is non numeric, it’s just a quantity that can be sensed (with a meter or a brain, it doesn’t matter). A signal along a gradient is the natural starting point for the study of math. This is a simple concept that we can eventually scale up into geometries, sets, symmetries, and even apple-detectors.

We take a measurement.

With a single measurement, we have no information because we have nothing to compare it to. We can’t say if it is high or low, because we know nothing about the precision and range of the signal, nor our ability to measure it. In much the same way, we can’t say if our universe is large or small compared to typical universes, as we only have one data point.

1.1 Precision

All things that can be measured, or even imagined, are not perfectly stable. They may be fluctuating rapidly like sound or light, or slowly changing like the cooling of the earth’s core. All measurements are samples over some duration, as nothing can be instantaneous. Measuring temperature is measuring the kinetic energy of atoms or molecules, and to measure this motion requires time. Other samples are over a much longer period, like the decay of carbon-14. Lastly, the measure needs to quantify this sample accurately, not just the ‘center’ of it, but the bounds as well. We usually do this with precision. The precision we use for a measurement can be limited by the traits we measure, by our instruments, or most commonly by our limited need for precision. The only hard limit is that precision must be finite.

Todo: point segment image

Knowing that all measures are some bounds of values that change over time makes it clear that measurements are ranges. A measurement doesn’t represent an infinitely precise value, because that would require inventing precision. Given that all values have limits to their precision, at a certain resolution they become segments or probability ranges. If we can’t tell two measures apart (or don’t care about the difference) they must use the same measurement. If we later find a way to tell them apart (or start caring about the differences), we can separate them and add precision to the system. A value isn’t an exact number, nor a segment with two endpoints – it is all potential measurements that are considered the same at the level of precision used.

1.2 Extents

Measurements aren’t just confined to a level of precision, they are also bound by their maximum potential extents in each direction. This can be a limit of the domain itself, of the instrument, or by the limits of our concern. Any measures two large to be distinguished (in the positive or negative direction) must also be considered the same. We are free to improve our instruments, take more samples, or even imagine greater extents. But this expanded domain will still be bounded, and subsequent transformations will still be limited by these new bounds. This is true even in domains where we can not articulate a bounds, such as with numbers. Numbers do not have a hard limit, but we know they eventually grow large enough that they invalidate any definition that can describe what they are. Mathematics that obeys the conservation law must work with a finite amount of total information, and that total will not change under transformation.

A bounded value, or a range between two measured values.

1.3 Units, Unots and Basis

All gradient measurements have a precision and maximum range, but we can’t quantify these with a single measurement from an uncalibrated instrument. The first step would be to acquire a second value, and the only requirement here is that we can tell it apart from the first one. This second value tells us the precision and limits are at least this range. We can also compare the two and call one signal ‘greater’ than the other. Everything measurable comes from some form of ordered gradient, otherwise we couldn’t measure it. Imagining we are measuring a voltage, greater voltage may mean extra electrons or fewer electrons. This directional choice is arbitrary but necessary. For any comparison we need to label one direction greater and one lesser, in order to specify what we mean when values increase and decrease.

Imagine our voltage meter has an indicator that swings from blue to red. Let’s say the first point measured was more red, the second more blue. We’ll arbitrarily label red to blue as the positive direction. A numeric segment can be created by calling the  first position ‘zero’ and the second position ‘one’. This segment forms a unit, where the positive direction is always towards blue.

If we would flip this numbering, moving towards red would be considered positive. This ‘negative unit’ segment will be called a unot in order to distinguish it from a unit. This is a new word, but more importantly, *this is an extremely important concept*. Note that this isn’t a negative number – that is a number with a positive unit that moves leftward. This is a number whose unit is negative. What does a negative unit imply? What would adding or multiplying a number with a negative unit do? This is worth pausing to think about. More on this later.

The term ‘basis’ represents either the unit or unot of a measure, whichever one it is using. The absolute direction chosen for a unit is arbitrary, but the unot will always be opposite. We normally only work in units, and they normally increase to the right. This would make unots point to the left. Keep in mind this is just a visualization. Measurements such as wealth vs debt, tallness vs shortness, heating vs cooling, or happiness vs sadness have no preferred basis, no preferred direction, and are not even naturally horizontal.

1.4 Comparisons 

With three values, we can form two segments and compare them. There are actually three possible segments here, and they are all useful to consider.

Let’s call the latest value ‘x’. If the first two values (0->1) form a unit, then a second segment (0->x) can be created to compare to the first one. Depending where the x value is, the segment formed could be 2 times as long as the unit, 3 times as long, 0.25 times as long, or even -4 times as long. From the unot perspective these values would simply be inverted, but this will be covered in more detail later.

It is instructive to test what happens to the ratio of the x segment to the unit segment as you slide the x value along the scale. As x moves to the right the ratio becomes larger and larger until it hits the limit of its range. As it moves left it gets smaller, as it passes 1 you get fractions, and as it moves past 0 you get larger and larger negative numbers. These values are linear with motion – the numbers increase or decrease in direct proportion to the amount you move the x position. The motion of x gives us the familiar rational numbers – a fraction with the x segment on top and the unit segment on the bottom.

What about if you move the unit’s ‘1’ position? Here the unit is changing size, so as it moves left closer to zero the ratio of the x segment grows larger, and as it moves right, past the x position that ratio grows smaller. If the point moves to the left of zero, we get a negative unit. This means our perspective has flipped – where greater used to mean bluer, they now mean redder. The position just to the left of zero gives us a very small ‘unot’, meaning a large negative number in the unot perspective. As the point continues left the large ratio comes down until it is as small as we have resolution for.

1.5 Reciprocals

Graphing these sliding comparisons gives the reciprocal function (y=1/x). Whatever value you get by taking the first segment as the basis, you will get the reciprocal when using the other segment as the basis. They are fractions of each other, 1/3 becomes 3/1.  Any number multiplied by its reciprocal equals its basis.

It is useful to think of these segments as having a start point and end point rather than left and right. A basis segment is a unit if its endpoint is on the right side, and it is a unot if its endpoint is on the left. If it is a point rather than a segment, you can’t tell whether the start point is on the left or right. Remember a point isn’t zero length. It’s just that we can’t tell apart the values it may contain, therefore we also can’t tell left from right. Another way of thinking about this is, a segment is positive if it points in the same direction as its basis, and negative if it points in the opposite direction.

1.6 Exploring Unot

A literal way to understand unot is to think of the dual interpretations we use for measure in everyday language. A normal day can be hot or cold, and everything in between. If warmer is the unit direction, then cooler is unot direction, and vice versa. Talking about temperature is usually done with a warm reference in summer (How hot is it? Very hot.) and a cool reference in winter (how cold is it? Very cold).

If a day goes from 10 degrees to 20 degrees, we can say the temperature was never more than 20 units, and never less than 10 units. But this doesn’t give us a direction. If we instead describe it in unot/unit terms, we can impose an order (unot->unit). That would be, from -10 unots to 20 units. If the start point is a unot, addition and also becomes straight forward, as we just add each element. Multiplication of two (non zero anchored) segments also becomes sensible, if not intuitive.

At a higher level of abstraction, you can think of the unot as the dual of the unit. If you select 3 out of 10 elements, the ‘unot’ is the 7 elements you didn’t select. If you multiply by a unot, it flips the meaning for forwards and backward as well as scaling. Mathematics contains duals throughout, due to the conservation not allowing the total information to change under transformation. The unot is a manifestation of that at the basis level.

1.7 Addition and Subtraction

Addition and subtraction are about total length. They require appending two lengths to form a new length. For addition of segments (in the unit perspective), the second segment is appended to the first segment’s endpoint. Subtraction is the same, only the segment being subtracted is flipped around its start point.

Note that the order here is the second element appends to the end. It could also be viewed as the second element emerging from the zero point (this might make more sense with segments that aren’t zero aligned). Addition mostly cares about total lengths, so it usually doesn’t matter. In more advanced situations, like when inspecting symmetry, it would be important to at least keep the rule consistent.

Addition and subtraction of unot segments works exactly the same, but the geometry will be reversed because the unot is pointing in the opposite direction. Again, we have to specify somehow this is all in the unot perspective.

Addition of mixed unit and unot segments reveals a bit more about the meaning of these segments. It is tempting to think of a positive unot value like a negative unit value, but they are different. They are often convertible to each other, but at minimum this requires a transform.

An example might help. If I have $5.00 (+5 wealth) and lose $3.00 (-3 wealth) I have $2.00 left. If I have $5.00 and you lend me $3.00 (+3 debt) I have $8.00. Even when I pay back the $3.00, I’ll still have $5.00. Wealth and debt are related but different. A negative is an opposite value, where a unot is an opposite perspective. Earning money and spending money are both dealing with the same perspective of the ledger (wealth). So are borrowing and paying back (debt). Combining both of them requires tracking both of them. This is true for all unit and unot measures. A very happy/sad moment feels quite different than an apathetic moment.

Adding mixed units (units and unots) requires us to conserve and track both values. We do this by joining the unot values to unot values, and joining unit values to unit values. Notice how the result will still have a unit and a unot value (with a shared zero point). In fact, we can describe all segments this way. In our normal numbering system we always assume a zero unot value, which creates a segment starting at zero. But these ‘full numbers’ (aka complex numbers) always fully describe the segment, even if both parts are non zero.

1.8 Complex Numbers are Segments

Complex numbers are directed segments. Normally complex numbers are transcribed with the unot side after the unit side, like 3+2i. Reversing that makes the segment read better, start point to end point, 2i+3. It also maps well to our existing numbers, which are all zero anchored, where”n” is actually “0i+n”. The numbers we are familiar with are the end point of a zero anchored segment.

Also notice these segments no longer need to be in the unit or unot perspective — the start point is measured by a unot, and the end point by a unit. The unit perspective is always the one we are viewing from, and unot is the one that ‘flips’ the perspective. This is why multiplying by unot (i) will flip the perspective and multiplying by unit will leave things as they are.

Complex numbers are normally visualized as transformed 2D objects with a rotation and magnitude. It can be useful to transform numbers like this, but untransformed complex numbers allow many visualizations that are not traditionally possible. At their simplest, they are just one dimensional segments along a gradient.

1.8 Multiplication

Addition and subtraction transform values through concatenation, while multiplication and division transform by scaling. You can think of it as stretching, as scaling up and down, or even zooming in and out. The important point is that all selected values scale linearly based on how far from the origin they are. Here is a simple number line, scaling up. It is much like stretching a rubber band with ticks on it, with zero at the center.

Notice how the 2i and 4 scale proportionally from zero as the number line stretches. If the original ‘1’ position became four times larger (by dragging it to the original 4), then all values selected would also become four times larger. If the ‘1’ was dragged to the left (became smaller), then all values would shrink. Lastly if the ‘1’ was dragged across the zero line to the -1 position, then all values would be negated.

We can measure this change if we hold the original basis units constant. In this case we are dragging values, not units. We always drag from the end of the basis (unit or unot) in multiplication, because the basis defines the scale of the number line.

With addition we concatenate from the zero point because we are appending, and therefore need to start at zero to include all the information in each unit direction. With multiplication we are scaling from the unit size to something larger or smaller, so we start at the one position to utilize the full measure of the unit. This explains why zero is the additive identity (adding zero doesn’t change the length) and one is the multiplicative identity (multiplying by one doesn’t change the length). Also it shows how zero can represent the absence of value in addition, but not in multiplication – something multiplied by zero is still there, it just at a scale that is less than we can measure.

Multiplication can only change the scale of an object, where addition can add or remove content to the element in focus. Addition results in multiple objects merged into one, so the end result has many similarities with scaling.

For scaling by a set amount, you stretch by that amount. All numbers are records of values, recipes to create these values, and for transformations by these values. In this case the *5 is the transformation that 5 causes.

To multiply 3 by 2 (3*2), you would drag the basis point to 2, and then remeasure the location of new ‘three’ point with the original unit.

What is happening in a multiplication is every section of the multiplicand is being stretched by every section of the multiplier. When one end of that segment is zero like in this case, the zero has no ‘pull’ on the result. This is a special case. Two segments are always multiplied by accounting for the four endpoints, just they do not affect the result when they are anchored on zero.

1.9 Multiplying by i

Anything multiplied by unit (1) doesn’t change. Anything multiplied by unot (a negative unit, or ‘i’), keeps the same value, but flips the perspective. So 5 becomes 5i, and 6i becomes 6. Note that 5i lies on the opposite side of the number line to 5 (flipped around zero), even though it has the same scalar. This is because ‘unot’ points in the opposite direction of ‘unit’, so its positive values grow in the opposite direction. To fully understand why this happens, we need to recap what a full number represents.

First, a full number represents a value as a directed segment, both the unit and unot amounts. Second, it is a recipe to create that segment. For example, ‘unit*10-4’ is a recipe to create ‘6’ from a unit by stretching and appending. Third, a full number represents the transformation itself. This transformation can be applied to any other full number or equation, and it will transform it in the same way. The part that is “*10-4” is a transformation applied to a unit that creates the segment 0i->6, but when applied to 2 (2 units*10-4) you get 0i->16. The transformation requires substitution to be applied elsewhere: n*10-4, 1*n-4 or 1*10-n. For this reason it is good to think of the transformation as including the operator, like +n, *n, -n³, or /ni.

Note: Negation is a mess, we use the same symbol to express negative numbers as we do to remove from a selection. It might be better to only have addition and multiplication. Then ‘-’ would only expresses negative numbers, and ‘/’ means “scaled by the reciprocal of”, written as ‘*1/n’. Or at least to think about it this way.

For transformations, ‘+’ means append, ‘*’ means scale, ‘³’ (power) means repetition, ‘-’ means flip around zero, and ‘i’ (unot) means change the perspective. Note that our notation is always from the unit perspective, so multiplying by ‘i’ means “flip to the other perspective”, not change to the ‘i’ perspective. It will flip unit to unot, and unot to unit.

As an example, we can multiply 2i*3i. The value 2i represents a recorded value, and 3i represents how we want to transform it. These are both in the unot perspective, so their basis unit is -1. The transform is multiplication by 3i, so it will flip the perspective, and then scale by what remains. The 2i becomes 2 when it flips. This leaves the 3, but its position is now in the unit perspective, which makes it -3. Notice, nothing flipped the 3i, it just used up its ‘i’. This leaves us with (2*-3) in unit perspective, which is -6.

Multiplying by a negative unit flips the perspective of the multiplicand. As a bonus, we can now calculate that i*i=-1, rather than accepting this result as the definition of i.

1.10 Repeated Multiplies

Repetition is another fundamental operation in mathematics. We’ll cover it more later, but to really see how full numbers are equivalent to complex numbers, let’s look at what happens when repeatedly multiplying by i.

A segment can cycle through the positive and negative values of both the unit and unot directions by repeating a single transform: *i. This is the familiar cycling sequence 1, i, -1, -i, 1, i, -1, i… normally viewed as a rotation on a grid. It is easier to see how this works when multiplying by 2i as each operation’s output will be at a new scale. It may look complicated, but it is all just a consequence of the fact that multiplying by ‘i’ flips the perspective. Remember, multiplying by a negative flips the values around zero, and multiplying by ‘i’ flips the value’s directional orientation on the number line itself.

1.11 Resolution, Range, and Focus

Significant figures are of great importance in science and engineering, yet we have no way of encoding them in our mathematical notation. Even our base 10 numbering system is inappropriate for recording what is ultimately a binary phenomena. Fully defined basis segments specify both unit length and segment resolution, enabling computation to automatically track significant figures as it moves through transformations. Units (and unots) are created out of ‘ticks’ which are the smallest measure we are capable of – or more often just the smallest measure we care about for the given context.

Unit size is an arbitrary choice, but one with consequences. In pure math, where all values are imagined and therefore ‘perfectly measurable’, the unit resolution is mostly a matter of convenience. We choose units such as inches or light years because those are close to the values we expect to be working with. This avoids very large or small numbers that are not only awkward to work with, but convey a false sense of precision — especially important when our notation only ‘senses’ precision. Note that this is in no way claiming that avoiding a false sense of precision is a good way of measuring precision.

In applied math, where actual measurements have limits on accuracy and scale, choosing a unit in the appropriate range becomes more important. It also entails a lot of bookkeeping to ensure we don’t stray from that measured accuracy.

Intuitively, it seems the smallest element we can measure should always be the unit. This would be the distance between the smallest changes we can detect. The problem that arises is that the smallest measure is the least accurate signal we have, by definition. It is hard to get a precise value, and we have no way of making it more accurate. This inaccuracy will compound. If we estimate a micrometer, putting a million of them side by side is unlikely to be exactly a meter.

Making a unit the largest number that can be measured or imagined is problematic for the same reason. We think the universe is something like 13 billion light years across, but this is at the edge of what we’re able to measure, so it is very approximate and subject to change.

Much better would be to use a large number of those differences and divide them. Even if this measure isn’t perfect, the error is divided rather than compounded. A bonus is the unit’s magnitude can be made at whatever scale is appropriate, whether nanometers or miles. Note that these scales can be very very large and small. A computer can easily handle trillions and trillions of ticks in any configuration. The only requirement is that both the resolution and range be defined, and that both be finite.

Another important requirement of a unit basis is that it be simple to recalibrate. Not just to accommodate greater accuracies as we acquire them, but because the problems we work on have greatly varying resolutions. Having plenty of extra resolution for units to grow and shrink facilitates these conversions. We are used to having standard units we can measure with such as the meter. These units are calibrated very precisely, and they get more precise over time. However in actual usage the resolution must be allowed to vary widely. A tape measure does not give us the 0.1nm precision available from the meter definition, and the meter definition does not give us the numeric precision routinely used in computers.

1.12 Adding Two Segments

So far most of our segments have been anchored at zero. This creates very useful math – it is simple, and we can map it (with workarounds) to many of the magnitudes we deal with in everyday life. But it is not the full description of numbers, and it often breaks down without us even noticing.

Imagine a segment going from 0i->3, aka the number 3. What do we mean when we add ‘2’ to this? As we covered in the last section, this means appending the unit portion of ‘2 segment’ to the unit point (end point) of the original segment, and adding the unot portion of the ‘2 segment’ (zero in this case) to the unot point (start point) of the original segment. This results in a segment of length 5 (0i+5).

Now we can add segments that aren’t anchored at zero. The formula is the same (add the unit to unit, add the unot to unot), but you can see the second value is ‘split’. When segments don’t straddle the zero line, the formula is still the same, just both the start points and the end points are involved.

Here is an example of adding a segment where the endpoint is to the left of a start point. You can see why these complex-number segments are directed – the complex value represents the startpoint, not the leftmost point. A negative value shift the endpoint in the opposite direction. Ultimately the formula is simple, add the start points to get the resulting start point, and then add the end points to get the resulting endpoint.

What if we meant to shift the segment by 2 instead of add 2? In this case we want both the startpoint and the endpoint to move to the right by 2. This requires a segment with an end value of 2 (which moves the unit position to the right by 2), and a start value of -2i (which moves the unot position to the right by 2). Remember a unot value increases as it moves left, so -2 will move it to the right. This is normally what we consider a point rather than a segment.

So adding the segment 2 (0i->2) appends to the length of a segment, but adding the point 2 (-2i->2) shifts the segment. In normal math we consider these both to be ‘+2’ and differentiate based on context, but as you can see they are usefully different.

1.13 Multiplying Two Segments

Multiplying two segments that are offset from zero requires that every portion of the multiplier exerts a force on every portion of the multiplicand. This is simplified somewhat by the fact that the segments are linear. This allows us to interpolate these forces by just using the four endpoints. Multiply all the combinations together, and add the results up.

(ai+b)*(ci+d)= ai*ci + ai*d + b*ci + b*d

SegA*SegB    = endpt+startpt+startpt+endpt

             = startpt+endpt

             = Segment

It is still worth developing an intuition for this, and get a sense for the forces one segment exerts on the other. Try to see the tips of one segment acting on the tips of the other. It takes a while to feel intuitive because of the perspective flipping that the i multiplication does, but once dragging things around in an interactive program you do get the sense of it. Notice how you end up with two start points (unots), and two end points (units) that can be added together. Remember i*i results in the unit perspective, so the ai*ci results in a unit perspective endpoint.

1.14 Repetition

The last fundamental part of a full number is repetition. We normally assign repetition to multiplication, using powers. The value n^2 or n^3 means scale n by itself 2 or 3 times. This scaling can also be repeated 2½ times, -⅓ times, or even 2i+4 times. Naturally these repetitions can be represented as segments

Scaling up, these repetitions can be applied to repetitions, in multiple layers, which can be scaled up with repetitions, etc.

Scaling down, we get the repetition of addition. Counting from 1 to 7 could be written as an additive exponent (1)+7, where addition is repeated 7 times. We usually confuse this with single step multiplication (1*7), but the difference is apparent when looking at full number segments.

In order, there is repetition by addition, which is related to multiplication. Next repetition of multiplication that is expressed as powers. From there, repetition of powers, and powers of powers. Segments tend to lose meaning for us as levels of repetition grows, either exceeding the domain range, falling below the tick resolution, or just turning into seeming randomness.

There is also repetition with variation. We’ll cover that later as it is works in the context of equations.

1.15 Complete description of a value

Characterizing a trait we measure is as important as the measurements. The following is an example of characterizing an unknown source, where we have a dial to generate input and a meter to read output. This source will be linear, where the output value changes proportionally to the input. Of course not all traits will have linear values, and characterizing this is one of the main tasks of equations. This will also describe the limits of what is measurable of this source – it is much more common to only use the resolutions and ranges we care about.

A full description of a domain requires a minimum resolution (tick size), a maximum positive and negative range, a zero point, and a unit size. All of these can be described with directed segments (complex numbers). A domain also needs to belong to a trait, for example Celsius (a domain) belongs to the temperature trait. Any fully described value must belong to a fully described domain.

First we’ll consider the maximum range segment. Turning the dial all the way to the left, and then all the way to the right, will give us min/max readings. The meter might stop before the end, or it might reach the end before the dial is fully turned. It is always the meter that determines the domain (the output values), not of the capabilities of the measuring instrument. The limits of ranges do not have to be stated, just the ranges you care about. 32 bit integers go from -2,147,483,648 to 2,147,483,647, and we can work with these even though we know there are numbers beyond this range.

Next we need a segment to measure the minimum distance that can be differentiated. We’ll call this a tick. Signals may well be coming in at a finer resolution, but because we can’t differentiate them this tick can not be subdivided. A tick is a segment, but it is a special case as it is the level where discrete changes are indistinguishable from continuous ones. Again, we usually limit this to a size we care about in a given context. Asking someone’s age has a tick size of years, not nanoseconds.

Lastly we need to choose a unit. This is somewhat arbitrary, but ideally it is somewhere where the resolution is informative, and the range is meaningful. If common values tend to cluster in an area it might be useful to locate zero there (like Celsius), other signals may make more sense to have zero at a natural start point (like Kelvin). An imperial tape measure has a unit of one inch, a tick size of 1/8th of an inch, and a range of 0-192 inches (16 feet, with feet and yards being optional units).

These three segments (tick, range, and unit) define the domain of a measurement. Now all values in this domain are meaningful. If later a tick is able to be more accurately measured, the same unit can just be split into more ticks. The existing values will not need to change, they just will be lower precision than newer values. The system can be similarly extended if values are eventually measured outside the existing range. Inversely, we can reduce precision in the same way. A tick can even be larger than a unit, such as when we use rounding. We say the population of a city is 750,000 (a tick of 50,000 and a unit of 1) to express approximation.

It may seem strange to couple all this domain information to a number, but domains are just like numbers – a context agnostic system to record information about magnitudes. Specifying ranges and units does not limit this domain system to specific categories, any more than counting seven apples ties our numbering system to fruit. Domains are just a more complete way of describing and relating values, with precision, ranges, and calibration.

1.16 Some Advantages

Before going deeper into equations, multiple dimensions, and concept encoding, it is worth looking at some of the practical advantages of using this number system rather than real numbers. Full disclosure, I’ve only used this system (while programming) for months, not years, so these thoughts are preliminary.

The main benefit to treating numbers as directed segments is the change in mindset it brings. With infinitely precise numbers we look for single correct answers, with flexible segments we try to narrow down possible truths. This is maps closely to how we learn and discover. These segments do not have to represent hard values at their endpoints either — they could just as easily represent a standard deviation. This mindset forces us to quantify our certainty, and avoid the hubris of a perfect true or false.

The fact that everything in this system can be expressed on a gradient makes iterating towards a result straight forward. This includes the traits themselves, the resolution, the maximum ranges and the value ranges. It also makes conversion of domains within a trait simple and accurate. There is also a clear path to combining simple traits into new traits, in non linear ways. E.g. the size and color traits of a context can be mathematically joined to express “apples can be red or green, and green apples tend to be larger”.

As a programmer, this system can be thought of as ‘typed numbers’ (something I’ve always wanted). A value range  belongs to a domain, which belongs to a trait (a range, in Celsius, measuring temperature). It becomes impossible to accidentally add a temperature to a counter, and temperature values can have custom methods that only relate to temperature. That said, it is still simple to convert across domains (C->F) with adapters, and across traits, by using the evaluated complex number. At the trait level, things can still be converted and compared with other traits. This allows metamorphical reuse of transformations, something fundamental to both math and language.

This system goes further with programming. Many common errors simply go away. Divide by zero is no longer an error, 4/0 just becomes a segment greater than the number of ticks in 4. If the domain has 10 ticks per unit, 4/0 is a segment from 40 1/10 to max. Null errors in math go away because ‘true zero’ (nothing selected) only exists in addition. For multiplication or repetition, we are using a selection, and these are methods on selections. If there is no selection there is no method available. Precision and auto conversion is simple for simple cases, and can be automatically learned from more complex data. Definitions of equality can be fully articulated, accurate and bounded by defined precisions. All numbers and domains become fully differentiable. Continuous (floats) and discrete (ints) are combined into one system where ticks are continuous, and units are discrete. The list goes on.

In math, considering complex number to be one dimensional directed segments will at least make some visualizations possible that are currently limited (three complex numbers can be visualized in 3D space, where currently 2 complex numbers require four dimensions). Adding precision and type to numbers saves storing those things in the metadata of symbol chooses and footnotes. The advanced areas of many math domains end up with a version of complex numbers involved. Viewing existing domains of math with directed range rather than exact values could make many difficult concepts simpler to reason about.

While I know very little of physics, so much of it seems to use complex numbers as the primitive value. Oscillations, harmonics and rotations are the natural language of these directed segments over time. It seems like a better fit from a distance at least.

Lastly, and maybe most importantly, I feel this system adapts well to the much more abstract calculations of language and thought. It is very comfortable with the low precision of terms like warm and cool. The context of the statement is also quantifiable and ‘diffable’, so saying warm in an Arizona summer or Manitoba winter expects different ranges. Surprise can be a simple diff of what is expected in context. And key, concepts can be defined with ranges on a large number of traits, and context can be applied by filtering these expectations. This could lead to an encoding of concepts that is independent of language.

Lots of work to be done.

One thought on “Deriving Universal Math

Comments are closed.