Modern Alchemy

Ralph Ritoch

This world has enough scientists but few real alchemists.  The scientist applies known mathematical rules and physical properties to extract information. The alchemist, driven by some unseen force, seeks to break the rules and create new properties, either by discovery or abstraction.  Driven by intuition, and not bound by the rules, the alchemist can solve the unsolvable, by luck or fate.

I will start this tutorial by throwing out all of the rules. Yep, they’re all gone!  It is just you and your computer.  We cannot wholly predict the results of our actions so instead we will take the role of an observer, otherwise we risk creating new rules.  I will not take responsibility for your actions, just as you will not take responsibility for mine.

Traditional programmers will look at truth as a binary system, a series of 1’s and 0’s magically tied together by logical operations, but our universe was not designed this way. An arbitrary decision is made as to what is true, and what is false, and anything between the two is treated as an error since it doesn’t fit into this limited view of reality.  In reality microprocessors are designed, and the concepts of true and false are part of that design. The design uses electric potential differences, known as volts to represent information. This selection is mostly arbitrary, and is partially based on physical limitations of the materials being used, but even those limitations are arbitrary as the limitations depend on more than just voltage, temperature and pressure are also limitations of the materials being used and can effect the amount of volts the material can tolerate. One engineer may treat anything greater than 5 volts as true, and everything less than one volt as false, another may prefer the opposite perspective, treating anything less than negative 5 volts as true, and everything greater than negative one volt as false.  Since anything can be true and anything within the bounds of physics, either real or imagined, can be considered true or false we have yet to establish any information.  What we have done is imagined a relationship, that anything can be true if there is a false, and anything can be false, if there is a true.

Having already broken the fundamental binary rules of computing we have established a foundation for alchemy.  We can now set our own rules, as we see fit, and to do so we need a new idea.  The magical operation of assignment.  Without the functionality of assignment computers and information would not exist.  While the choice is arbitrary we shall assign what is true, and what is false.  There are many ways to do this with programming languages and/or mathematics. We could use the ‘=’ (equals) symbol or maybe the word ‘let’.  It doesn’t matter what symbol or word we use to represent the assignment operation, what matters is that we select a symbol to represent the assignment operation.  Once we have that symbol we can assign one state as true, and another as false, but we still have a problem.  What shall we do with that which is not true and is not false.  Instead of allowing the universe we are creating to break, we shall make a third assignment of null.  This assignment of null will represent everything that has not been assigned.  In great folly some alchemists have chosen to assign null to a value, and that is perfectly fine, but when you do so you may still need to add a new symbol to represent that which hasn’t been assigned a value.  As an alchemist it is your right to assign true, false, and null to whatever states you choose.  If your goal is to annoy the scientists, you may assign some number to represent false, another to represent null, and treat anything else which hasn’t been defined as true.  Have some fun with it, assignment is not just our right, it is our responsibility!  We do not need to accept anyone else’s rules to attain our goals.

In our minds we have just broken one of Clark’s laws, that  “Any sufficiently advanced technology is indistinguishable from magic.”.  We are now able to apply the most basic of technologies in such a way that it is indistinguishable from magic. Like a master magician, we can choose what is true and what is false.

What shall we do though if something is almost true, almost false, or indistinguishable from true or false. Our one dimensional view of the universe of having discrete states is too limited to handle every situation.  Even scientists were able to figure this one out, and they called it fuzzy logic.  These scientists used the magical power of assignment without fully unlocking it’s potential.  This two dimensional truth is often represented as a floating point between arbitrarily selected numbers, any number between zero and one being the popular choice, but we already know from experience that we can choose any values we want for that which is true or false.

What the alchemist must consider is that there are an infinite number of possible dimensions of truth. We can select a group of people, and assign them each to a dimension. They may each use a slider to select how true they believe some condition is. If we want we could even select two groups of comparable size and perform muti-dimensional calculations against the quantity of truth or falsity selected by the groups.  These dimensions do not need to be assigned to people though, we can assign them to anything we choose. With the right equipment we could take our groups, and assign one dimension to individual heart rate, one to breathing rate, and one to the amount of perspiration on some scale and maybe we can tell if they were lying when they provided their answer. How much are you willing to trust your data? Maybe we should add a dimension to our assignment of truth to establish how much we trust that data.  The possibilities are endless. As an alchemist we are not bound to one dimensional concepts of truth, we may add as many dimensions of truth as we choose to accomplish our task.

Knowing we can break all the rules is simply not enough.  We must also know the standards and/or consensus of what is true and false.  As observers we do not need to change the rules, we know the rules don’t exist. We can happily use established standards of zero being false, and one being true.  The master alchemist will always follow the established standard, secretly knowing that the standard is just one of an infinite number of possibilities.

“that which is above is as that which is below, and that which is below is as that which is above, to perform the miracles of the One Thing.”

Having unlocked the mystery of truth and the power of assignment we shall seek out more power.   How many magical operations can we find? We will work from the one dimensional view, but these concepts can be expanded to more dimensions as needed. We will assign our value to symbol “A” and our result to “Result”. I will assign “T” for true, and “F” for false. Remember, you are the alchemist, you can choose any symbols you want, as long as you can tell the difference between them.

OpAResult
1TT
2TF

That is way too simple for an alchemist, the next logical step would be to perform an operation on two values, how many operations can we find now? This is a simple permutation problem, we will take a value from above, a value from below, and turn it into one thing. This time let us assign the first value to the symbol “A”, the second to the symbol “B” and assigning the result to “Result”,  and we will look at every possible combination of these three states.

OpABResult
1TTT
 TFT
 FTT
 FFT
2TTT
 TFT
 FTT
 FFF
3TTT
 TFT
 FTF
 FFT
4TTT
 TFT
 FTF
 FFF
5TTT
 TFF
 FTT
 FFT
6TTT
 TFF
 FTT
 FFF
7TTT
 TFF
 FTF
 FFT
8TTT
 TFF
 FTF
 FFF
9TTF
 TFT
 FTT
 FFT
10TTF
 TFT
 FTT
 FFF
11TTF
 TFT
 FTF
 FFT
12TTF
 TFT
 FTF
 FFF
13TTF
 TFF
 FTT
 FFT
14TTF
 TFF
 FTT
 FFF
15TTF
 TFF
 FTF
 FFT
16TTF
 TFF
 FTF
 FFF

It should be clear by now, to any alchemist, that there are an infinite number of operations that can be performed by simply performing our operations on more values. Looking at our operations on a single value, you may recognize that operation #2 is called a logical “NOT” operation.  Looking at our operations in the second table, we can recognize a few more logical relationships that are familiar. Operation #2 is often called “OR”,  #8 is often called “AND”, #10 is an exclusive “OR” also known as “XOR”, and many of the other operations may seem foreign to you, but they can all be achieved using various combinations of assignments, NOT, OR, AND, and XOR statements.  For example, operation 16 is just an assignment of false, ignoring the input values, operation 9 is achieved by applying the NOT operation to the result of the AND operation.  It is your responsibility to be able to achieve each of these operations, and more, with the resources you have available.  As long as you can NOT, OR, AND, and assign with “=”, than you can achieve each of these 16 operations through some sequence of these operations. To get you started I will give you the solution for achieving operation #10, the XOR function. It is achieved achieved with the following sequence of operations where operations in the deepest parenthesis are performed first.

XOR = (NOT (A AND B)) AND (A OR B))

We create the XOR operation by doing an AND on the result of NOT on the result of A AND B and the value returned by A OR B.  Knowing that these 16 operations exist, and an infinite number of additional operations by operating on more values, is what makes the difference between being a scientist, and being an alchemist.  A master alchemist may even decide that I chose the word alchemist, and may instead use the word hacker.

With knowledge of the existence of every possible operation that can be performed on some set of truth values, we are almost able to perform any possible magical operation. There is still much more to learn. With these operations we have all of the power to transform and reduce a number of input values, and control the output values they produce.  Special combinations of these operations can be used to add, subtract, multiply, and divide, through the use of binary encoding of data.  As the alchemist you can choose any encoding you like, but it may require a large symbol tables to map all of your possible inputs to all of your possible outputs.  The choice is yours, but a master alchemist will usually utilize the standards available to avoid the extra work.

Before freeing your mind from my grasp, there are a few more details you must absorb.  Notice I have numbered these operations, but they can be stored as any symbol your machine will allow. Symbols can also be used to represent the storage locations used by your machine. Using some combination of our operations we will create one more. Our machine will GOTO some other sequence of operations, IF the result of our operations has produced one or more symbols we have chosen.  Some programming languages use the symbol “GOTO” on the result of operation #1, and use the “IF” symbol to “GOTO” some other code on the result of the NOT value of some provided operation.  This is not very intuitive is it? That is OK, IF you are confused, than read this again, since you are NOT confused, you didn’t read it again. You just skipped ahead as any good alchemist would because you are NOT confused, and that is why programming languages, when running into an IF statement will use the GOTO operation when the result is NOT true.  They have hidden this secret, but as an alchemist, we can see the truth.  With the power of the “IF GOTO” operation in your grasp, you are now ready to study the Turing Machine.  With what you have learned here, and a deep understanding of the Turing Machine you can perform any possible operation making you a master alchemist.

GOTO Turing Machine