I don’t remember the first time I heard about the Liar’s Paradox, but it was definitely in college, because it came up in my computer theory classes in discussions on formal grammars. As such, I’ve been thinking about it on and off, for about 20 years. Wikipedia says that the first correct articulation of the Liar’s Paradox is attributed to a Greek philosopher named Eubulides, who stated it as follows: “A man says that he is lying. Is what he says true or false?” For purposes of this note, I’m going to distill that to the modern formulation of, “This statement is false.”
As an initial matter, we must accept that not all statements are capable of meaningful truth values. For example, “Shoe”. This is just a word, that does not carry any intrinsic truth value, nor is there any meaningful mechanical process that I can apply to the statement to produce a truth value. Contrast this with, “A AND B”, where we know that A = “true” and B = “false”, given the typical boolean “AND” operator. There is in this case a mechanical process that can be applied to the statement, producing the output “false”. Now, all of that said, there is nothing preventing us from concocting a lookup table where, e.g., the statement “Shoe” is assigned the value “true”.
Now consider the distilled Liar’s Paradox again: “This statement is false”. There is no general, mechanical process that will evaluate such a statement. However, it is plainly capable of producing a truth value, since it simply asserts one for itself, much like a lookup table. Typically, this is introduced as producing a paradox, because if we assume the truth value is false, then the truth value of false is consistent with the truth value asserted in the statement. Generally speaking, when assertion and observation are consistent, we say the assertion is true, and this is an instance of that. As such, the statement is true, despite the fact that the statement itself asserts that it is false. Hence, the famous paradox.
Now instead approach the problem from the perspective of solving for the truth value, rather than asserting the truth value. This would look something like, “This statement is A”, where . Now we can consider the two possible values of . If , then the statement asserts a truth value that is consistent with the assumed truth value, and there’s nothing wrong with that. If instead , then we have a contradiction, as noted above. Typically, when engaging in mathematics, contradictions are used to rule out possibilities. Applying that principle in this case yields the result that , which resolves the paradox.
In summary, not all statements are capable of mechanical evaluation, and only a subset of those mechanically evaluable statements resolve to true or false. This however does not prevent us from simply assigning a truth value to a statement, whether by a lookup table, or within the statement itself. However, if we do so, we can nonetheless apply basic principles of logic and mathematics, and if we adhere to them, we can exclude certain purported truth values that are the result of mere assertion. In this case, such a process implies that a statement that asserts its own truth value, is always true.
My work in physics relies heavily on the Compton Wavelength, which as far as I know, was introduced solely to explain Compton Scattering. Wikipedia introduces the Compton Wavelength as a “Quantum Mechanical” property of particles, which is nonsense. Compton Scattering instead plainly demonstrates the particle nature of both light and electrons, since the related experiment literally pings an electron with an X-ray, causing both particles to scatter, just like billiard balls. I obviously have all kinds of issues with Quantum Mechanics, which I no longer think is physically real, but that’s not the point of this note.
Instead, the point of the note, is the implications of a more generalized form of the equation that governs Compton Scattering. Specifically, Arthur Compton proposed the following formula to describe the phenomena he observed when causing X-rays (i.e., photons) to collide with electrons.
,
where is the wavelength of the photon after scattering, is the wavelength of the photon before scattering, is Planck’s constant, is the mass of an electron, is the velocity of light, and is the scattering angle of the photon. Note that , which is the Compton Wavelength, is a constant in this case, but we will treat it as a variable below.
For intuition, if the inbound photon literally bounces straight back at , then evaluates to , maximizing the function at . Note that is the difference between the wavelength of the photon, before and after collision, and so in the case of a bounce back, the photon loses the most energy possible (i.e., the wavelength becomes maximally longer after collision, decreasing energy, see Planck’s equation for more). In contrast, if the photon scatters in a straight line, effectively passing through the electron at an angle of , then , implying that . That is, the photon loses no energy at all in this case. This all makes intuitive sense, in that in the former case, the photon presumably interacts to the maximum possible extent with the electron, losing the maximum energy possible, causing it to recoil at a angle, like a ball thrown straight at a wall. In contrast, if the photon effectively misses the electron, then it loses no energy at all, and simply continues onward in a straight line (i.e., a angle).
All of this makes sense, and as you can see, it has nothing to do with Quantum Mechanics, which again, I think is basically fake at this point.
Treating Mass as a Variable
In the previous section, we treated the Compton Wavelength as a constant, since we were concerned only with photons colliding with electrons. But we can consider the equation as a specific instance of a more general equation, that is a function of some variable mass . Now this obviously has some unstated practical limits, since you probably won’t get the same results bouncing a photon off of a macroscopic object, but we can consider e.g., heavier leptons like the Tau particle. This allows us to meaningfully question the equation, and if it holds generally as a function of mass, it could provide an insight into why this specific equation works. Most importantly for me, I have an explanation, that is consistent with the notion of a “horizontal particle” that I developed in my paper, A Computational Model of Time Dilation [1].
So let’s assume that the more general following form of equation holds as a function of mass:
.
Clearly, as we increase the mass , we will decrease for any value of . So let’s fix to simplify matters, implying that the photon bounces right back to its source.
The fundamental question is, why would the photon lose less energy, as a function of the mass with which it interacts? I think I have an explanation, that actually translates well macroscopically. Imagine a wall of a fixed size, reasonably large enough so that it can be reliably struck by a ball traveling towards it. Let’s posit a mass so low (again, nonetheless of a fixed size) that the impact of the ball actually causes the wall to be displaced. If the wall rotates somewhat like a pinwheel, then it could strike the ball multiple times, and each interaction could independently reduce the energy of the ball.
This example clearly does not work for point particles, though it could work for waves, and it certainly does work for horizontal particles, for which the energy or mass (depending upon whether it is a photon or a massive particle) is spread about a line. You can visualize this as a set of sequential “beads” of energy / mass. This would give massive particles a literal wavelength, and cause a massive particle to occupy a volume over time when randomly rotating, increasing the probability of multiple interactions. For intuition, imagine randomly rotating a string of beads in 3-space.
Astonishingly, I show in [1], that the resultant wavelength of a horizontal massive particle is actually the Compton Wavelength. I also show that this concept implies the correct equations for time-dilation, momentum, electrostatic forces, magnetic forces, inertia, centrifugal forces, and more generally, present a totally unified theory of physics, in a much larger paper that includes [1], entitled A Combinatorial Model of Physics [2].
Returning to the problem at hand, the more massive a particle is, the more inertia it has, and so the rotational and more general displacement of the particle due to collision with the photon will be lower as a function of the particle’s mass. Further, assuming momentum is conserved, if the photon rotates (which Compton Scattering demonstrates as a clear possibility), regardless of whether it loses energy, that change in momentum must be offset by the particle with which it collides. The larger the mass of the particle, the less that particle will have to rotate in order to offset the photon’s change in momentum, again decreasing the overall displacement of that particle, in turn decreasing the probability of more than one interaction, assuming the particle is either a wave or a horizontal particle.
Conclusion
Though I obviously have rather aggressive views on the topic, if we accept that Compton’s Scattering equation holds generally (and I’m not sure it does), then we have a perfectly fine, mechanical explanation for it, if we assume elementary particles are waves or horizontal particles. So assuming all of this holds up, point particles don’t really work, which I think is obvious from the fact that light has a wavelength in the first instance, and is therefore not a point in space, and must at least be a line.
I’m working on formalizing an existing paper of mine on genetics that will cover the history of mankind using mtDNA and Machine Learning. Part of this process required me to reconsider the genome alignment I’ve been using, and this opened a huge can of worms yesterday, related to the very nature of reality and whether or not it is computable. This sounds like a tall order, but it’s real, and if you’re interested, you should keep reading. The work on the genetic alignment itself is basically done, and you can read about it here. The short story is, the genome alignment I’ve been using is almost certainly the unique and correct global alignment for mtDNA, for both theoretical and empirical reasons. But that’s not the interesting part.
Specifically, I started out by asking myself, what if I compare a genome to itself, except I shift one copy of the genome by a single base. A genome is a string of labels, e.g., . So if I were to shift by one base in a modulo style (note that mtDNA is a loop), I would have , shifting each base by one index, and wrapping T around to the front of the genome. Before shifting, a genome is obviously a perfect match to itself, and so the number of matching bases between and itself is 4. However, once I shift it by one base, the match count between and is 0. Now this is a fabricated example, but the intuition is already there: shifting a string by one index could conceivably completely scramble the comparison, potentially producing random results.
Kolmogorov Complexity
Andrey Kolmogorov defined a string as random, which we now call Kolmogorov Random in his honor, if there is no compressed representation of that can be run on a UTM, generating as its output. The length of the shortest program that generates on a UTM, i.e., , is called the Kolmogorov Complexity of . As a result, if a string is Kolmogorov Random, then the Kolmogorov Complexity of that string should be approximately its length, i.e., the shortest program that produces is basically just a print function that takes as its input, and prints to the tape as output. As such, we typically say that the Kolmogorov Complexity of a Kolmogorov Random string is , where denotes the length of , and is a constant given by the length of the print function.
So now let’s assume I have a Kolmogorov Random string , and I again shift it by one base in a modulo style, producing . Assume that is not Kolmogorov Random, and further, let denote the length of and . Now consider the string , i.e., entires through of , and entries through of . If is not Kolmogorov Random, then it can be compressed into some string such that , where is some UTM and the length of is significantly less than the length of . But this implies that we can produce , by first generating , and then appending to the end of . But this implies that can be generated by another string that is significantly shorter than itself, contradicting the assumption that is Kolmogorov Random. Therefore, must be Kolmogorov Random. Note that we can produce by removing the first entry of . Therefore, if is not Kolmogorov Random, then we can produce by first generating using a string significantly shorter than , which contradicts the fact that must be Kolmogorov Random. Therefore, is Kolmogorov Random.
This is actually a really serious result, that might allow us to test for randomness, by shifting a given string by one index, and testing whether comparing matching indexes produce statistically random results. Note that unfortunately, the Kolmogorov Complexity is itself non-computable, so we cannot test for randomness using the Kolmogorov Complexity itself, but as you can see, it is nonetheless a practical, and powerful notion.
Computation, Uncertainty, and Uniform Distributions
Now imagine we instead begin with the string . Clearly, if we shift by 1 index, the match count will drop to exactly 0, and if we shift again, it will jump back to 8, i.e., the full length of the string. This is much easier to do in your head, because the string has a clear pattern of alternating entries, and so a bit of thinking shows that shifting by 1 base will cause the match count to drop to 0. This suggests a more general concept, which is that uncertainty can arise from the need for computational work. That is, the answer to a question could be attainable, provided we perform some number of computations, and prior to that, the answer is otherwise unknown to us. In this case, the question is, what’s the match count after shifting by one base. Because the problem is simple, you can do this in your head.
But if I instead asked you the same question with respect to , you’d probably have to grab a pen and paper, and carefully work out the answer. As such, your uncertainty with respect to the same question depends upon the subject of that question, specifically in this case, and . The former is so simple, the answer is obvious regardless of how long the string is, whereas the latter is idiosyncratic, and therefore, requires more computational work. Intuitively, you can feel that your uncertainty is higher in the latter case, and it seems reasonable to connect that to the amount of computational work required to answer the question.
This leads to the case where you simply don’t have an algorithm, even if such an algorithm exists. That is, you simply don’t know how to solve the problem in question. If in this case, there is still some finite set of possible answers, then you effectively have a random variable. That is, the answer will be drawn from some finite set, and you have no means of calculating the answer, and therefore, no reason to distinguish between the various possible answers, producing a uniform distribution over the set of possible answers. This shows us that even a solvable, deterministic problem, can appear random due to subjective ignorance of the solution to the problem.
Deterministic Randomness
I recall a formal result that gives the density of Kolmogorov Random strings for a given length , but I can’t seem to find it. However, you can easily show that there must be at least one Kolmogorov Random string of every length . Specifically, the number of strings of length less than or equal to is given by . The number of strings of length is instead , and as such, there is at least 1 Kolmogorov Random string of length , since there aren’t enough shorter codes. As a result, we can produce Kolmogorov Random strings by simply counting, and producing all strings of length , though we cannot test them individually for randomness since the Kolmogorov Complexity is non-computable.
In fact, I proved a corollary that’s even stronger. Specifically, you can prove that a UTM cannot cherry pick the random strings that are generated by such a process. This is however a corollary of a related result, which we will prove first, that a UTM cannot increase the Kolmogorov Complexity of an input.
Let . Since generates when is given as the input to a UTM, this in turn implies that . That is, we can generate by first running the shortest program that will generate , which has a length of , and then feed back into the UTM, which will in turn generate . This is simply a UTM that runs twice, the code for which will have a length of that does not depend upon , which proves the result. That is, there is a UTM that always runs twice, and the code for that machine is independent of the particular under consideration, and therefore its length is given by a constant . As such, the complexity of the output of a UTM is strictly less than or equal to the complexity of its input.
This is a counterintuitive result, because we think of machines as doing computational work, and that connotes new information is being produced, but in the strictest sense, this is just not true. Now, as noted above, computational work is often required to answer questions, and so in that regard, computational work can alleviate uncertainty, but it cannot increase complexity in the sense of the Kolmogorov Complexity. Now we’re ready for the second result, which is that a UTM cannot cherry pick Kolmogorov Random strings.
Assume that we have some program that generates strings, at least some of which are Kolmogorov Random, and that never stops producing output. Because never terminates, and there are only so many strings of a given length, the strings generated by must eventually increase in length, and that cannot be a bounded process. As such, if never stops generating Kolmogorov Random strings, then those Kolmogorov Random strings must eventually increase in length, and that again cannot be a bounded process, producing arbitrarily long Kolmogorov Random strings. This implies that will eventually generate a Kolmogorov Random string , such that . However, this implies that . Note that the result above proves that a UTM cannot add complexity to its input. Therefore, if eventually generates then there cannot be some other program that can isolate as output from the rest of the output generated by , otherwise the result above would be contradicted.
This second result shows that there are serious limitations on the ability of a UTM to deterministically separate random and non-random strings. Specifically, though it’s clear that a UTM can generate random strings, they cannot be isolated from the rest of the output, if the random strings are unbounded in length.
Computable Physics
Now we’re ready for a serious talk on physics. When people say, “that’s random”, or “this is a random variable”, the connotation is that something other than a mechanical process (i.e., a UTM) created the experience or artifact in question. This is almost definitional once we have the Kolmogorov Complexity, because in order for a string to be random, it must be Kolmogorov Random, which means that it was not produced by a UTM in any meaningful way, and was instead simply printed to the output tape, with no real computational work. So where did the random string come from in the first instance?
We can posit the existence of random sources in nature, as distinct from computable sources, but why would you do this? The more honest epistemological posture is that physics is computable, which allows for Kolmogorov Random artifacts, and non-random artifacts, since again, UTMs can produce Kolmogorov Random strings. There are however, as shown above, restrictions on the ability of a UTM to isolate Kolmogorov Random strings from non-random strings. So what? This is consistent with a reality comprised of a mix of random and non-random artifacts, which sounds about right.
Now what’s interesting, is that because integers and other discrete structures are obviously physically real, we still have non-computable properties of reality, since e.g., the integers must have non-computable properties (i.e., the set of properties over the integers is uncountable). Putting it all together, we have a computable model of physics, that is capable of producing both random and non-random artifacts, with at least some limitations, and a more abstract framework of mathematics itself that also governs reality in a non-mechanical manner, that nonetheless has non-computable properties.
I’m planning on turning my work on mtDNA into a truly formal paper, that is more than just the application of Machine Learning to mtDNA, and is instead a formal piece on the history of humanity. As part of that effort, I revisited the global alignment I use (which is discussed here), attempting to put it on a truly rigorous basis. I have done exactly that. This is just a brief note, I’ll write something reasonably formal tomorrow, but the work is done.
First, there’s a theoretical question: How likely are we to find the 15 bases I use as the prefix (i.e., starting point) for the alignment, in a given mtDNA genome? You can find these 15 bases by simply looking at basically any mtDNA FASTA file in the NIH website, since they plainly use this same alignment. Just look at the first 15 bases (CTRL + F “gatcacaggt”), you’ll see them. Getting back to the probability of finding a particular sequence of 15 bases in a given mtDNA genome, the answer is not very likely, so we should be impressed that 98.34% of the 664 genomes in the dataset contain exactly the same 15 bases, and the remainder contain what is plainly the result of an insertion / deletion that altered that same sequence.
Consider first that there are sequences of bases of length 15, since there are 4 possible bases, ACGT. We want to know how likely it is that we find a given fixed sequence of length 15, anywhere in the mtDNA genome. If we find it more than once, that’s great, we’re just interested initially in the probability of finding it at least once. The only case that does not satisfy this criteria, is the case where it’s not found at all. The probability of two random 15 base sequences successfully matching at all 15 bases is . Note that a full mtDNA genome contains bases. As such, we have to consider comparing 15 bases starting at any one of the indexes available for comparison, again considering all cases where it’s found at least once as a success.
This is similar to asking the probability of tossing at least one heads with a coin over some number of trials. However, note in this case, the probability of success and failure are unequal. Since the probability of success at a given index is given by , the probability of failure at a given index is . Therefore, the probability that we find zero matches over all indexes is given by , and so the probability that we find at least one match is given by . That’s a pretty small probability, so we should already be impressed that we find this specific sequence of 15 bases in basically all human mtDNA genomes in the dataset.
I also tested how many instances of this sequence there are in a given genome, and the answer is either exactly 1, or 0, and never more, and as noted above, 98.34% of the 664 genomes in the dataset contain the exact sequence in full.
So that’s great, but what if these 15 bases have a special function, and that’s why they’re in basically every genome? The argument would be, sure these are special bases, but they don’t mark an alignment, they’re just in basically all genomes, at different locations, for some functional reason. We can address this question empirically, but first I’ll note that every mtDNA genome has what’s known as a D Loop, suggesting again, there’s an objective structure to mtDNA.
The empirical test is based upon the fact that mtDNA is incredibly stable, and offspring generally receive a perfect copy from their mother, with no mutations, though mutations can occur over large periods of time. As a result, the “true” global alignment for mtDNA should be able to produce basically perfect matches between genomes. Because there are 16,579 bases, there are 16,579 possible global alignments. The attached code tests all such alignments, and asks, which alignments are able to exceed 99% matches between two genomes? Of the alignments that are able to exceed 99%, 99.41% of those alignments are the default NIH alignment, suggesting that they are using the true, global alignment for mtDNA.
I’ve long suspected that the Phoenicians are the common ancestor of a lot of modern people in Northern Europe, parts of Africa, and East Asia. This is based on years of research at this point, but you can read this summary to get up to speed. I’ve finally developed a test that searches for the common maternal ancestor of the Tanzanians, the Basque, and the Koreans, and it turns out it’s still plausible that it’s the Phoenicians, but I’m starting to realize all of these tests simply tell me which population is the most ancient, without providing any obvious geography, which is what I’m really looking for. More to come, code below.
I started thinking about correlation again, and it dawned on me, that when we do math and science, we’re looking for computable relationships between sets of numbers. The most basic example is a function that describes the behavior of a system. Ideally, we have exact descriptions, but we often settle for probabilistic descriptions, or descriptions that are exact within some tolerance. I’d say that the search for computable relationships between sets of numbers is in fact science. But when you consider the full set of relationships between two sets of numbers, the set we’re interested in is therefore minuscule in terms of its density. In the extreme case, the set of computable functions has a density of zero compared to the set of non-computable functions. Yet, science and mathematics have come to the point where we can describe the behaviors of far away worlds, and nanoscopic terrestrial systems.
Therefore, it’s tempting to think that the computable is everything, and the balance of relationships are nonsense. For physical intuition, consider a Picasso painting represented as an RGB image, and compare that to the full set of random RGB images of the same size. What’s strange, is that the set in question will contain other known masterpieces, and new unknown masterpieces, if the image is large enough and the pixel size is small enough. And while I haven’t done the math, I’d wager the density of masterpieces is quite small, otherwise we’d all be famous painters, and since we’re not, I don’t think you can gamble your way into a masterpiece.
Similarly, if I have two sets of random numbers, and I simply connect them with strings, you’d probably think I’m a lunatic, though I’ve just defined a function. Whereas if I point out that I can inject the set of integers into the set of even integers, you’d swear I’m a genius. This might seem like unscientific thinking, but it isn’t. It’s arguably all the same, in that humans have a clear preference for computability, and that translates into a preference for symmetry over asymmetry. Personally, I listen to a lot of strange, highly random music, and enjoy Gregory Chaitin’s work as well, but in all seriousness, are we missing valuable information in the form of more complex functions, and perhaps tragically in the form of non-computable functions, assuming no non-computable machine exists?
I was again reading my absolute favorite book on mathematics, Mathematical Problems and Proofs [1] (no, I am not paid for this endorsement, it really is that great), and on page 11 of the text, Example 1.20 gives Euclid’s Theorem on Prime Numbers, demonstrating that the set of prime numbers must be infinite. I immediately recalled that all natural numbers are either prime, or the product of primes, known as the Fundamental Theorem of Arithmetic. This is a different result, the proof of which is not presented in [1] (at least I didn’t see it).
I checked Google, and there’s a straightforward proof using induction, but it lacks intuitive appeal. As such, I spent a few minutes this morning thinking about it, and I realized you can construct an intuitive proof. I haven’t seen this proof elsewhere, though it could be a known result. Even if it is known, what’s interesting is the structure of the proof, which is you can show that it must be the case that the algorithm upon which the proof relies, will eventually halt. This is pretty interesting, and maybe it’s a new form of proof. At a minimum, we have an intuitive proof of the Fundamental Theorem of Arithmetic that does not rely on induction.
The Proof
Assume you have a natural number . If is prime, then we’re done. So assume that is not prime. As such, it must be the case that , for , and therefore, . The intermediate result will be to show that all numbers are either prime, or have at least one prime factor, which we will then use to prove the Fundamental Theorem of Arithmetic. As such, if is prime, then we’re done. Therefore, assume is not prime, and as such, , for . We can of course continue to apply this process for increasing values of , generating decreasing values of . However, there are only finitely many numbers less than , and as such, this process must eventually terminate, producing a prime number . Note that , and as such, . Therefore, all natural numbers have at least one prime factor.
Now let’s express as the product of this prime number , and the remaining factors, , i.e., . Note that cannot be prime, so we can therefore run the algorithm above on , which will produce another prime number factor , and another remaining factor , such that . Note that it must be the case that , and in general, , and therefore it requires fewer steps to calculate each successive prime factor. Because the number of steps is always a natural number, this process must terminate. Therefore, will eventually be expressed as the product of a finite number of primes.
I’ve been thinking about the ability to model the Universe as a whole for about 10 years, and over the last few weeks, this thinking became rigorous, and today, I proved a formal result after reading my absolute favorite book on mathematics, Mathematical Problems and Proofs. Specifically, the text introduces Dedekind’s definition of an infinite set, which is that a set is infinite if it can be put into a one-to-one correspondence with one of its proper subsets. I then realized two things: (1) we can use Dedekind’s definition of infinity to ask whether a finite volume of space could contain a machine capable of predicting the behavior of the entire Universe and (2) that Dedekind’s definition of infinity is equivalent to an intuitive definition of infinity where a number is infinite if and only if it is greater than all natural numbers.
Predicting the Behavior of the Universe
Assume that we have a machine such that the output tape of contains the state of the Universe at time . That is, if we look at the output tape of at time , we will see a complete and accurate representation of the entire Universe at time , essentially predicting the future. It turns out we get very different answers depending upon whether we assume is within the Universe, or outside the Universe. This is plainly a thought experiment, but the case where is within the Universe is not, and has clear physical meaning, and so it is a serious inquiry. The plain conclusion is that we cannot realistically predict the behavior of the Universe as a whole, completely and accurately, absent what are unintuitive consequences discussed below.
Case 1: is within the Universe. Because the machine is within the Universe, it must be the case that the output tape for contains a complete and accurate representation of both the internal state of at time , and the output tape at time . We can represent this as , where is the state of the Universe excluding , is the internal state of , and is the output tape of .
However, , which means that the output tape at time given by , must also contain the output tape for . This recurrence relation does not end, and as a consequence, if we posit the existence of such a machine, the output tape will contain the entire future of the Universe. This implies the Universe is completely predetermined.
Case 2: is within the Universe, though is simply no longer required. Removing the requirement to represent the output tape is just to demonstrate that we still have a serious problem even in this case. Because we’re assuming the output tape does not need to contain a representation of its own output, this solves the recurrence problem, and so .
However, it must be the case that the total information on the output tape equals the total information in the Universe, since the output tape contains a complete and accurate representation of the Universe excluding the machine, and a complete and accurate representation of the internal state of the machine, which together is the entire Universe. Therefore, it must be the case that the Universe, and the output tape, which is within the Universe, must contain the same amount of information. Using Dedekind’s definition of infinity, it must be the case that the Universe and the machine contain an infinite amount of information. Because UTMs contain a finite amount of information, we are still stuck with a non-computable Universe.
Case 3: is outside the Universe, or the entire output tape is outside the Universe. In this case we can have a computable Universe that is in essence modeled or represented, respectively, by a copy of the Universe, that is housed outside of the Universe. Note that because in this case the output tape is always outside the Universe, it does not need to contain a representation of itself, solving the recurrence problem in Case 1. Further, because the output tape is outside the Universe, it can hold the same finite amount of information as the Universe, solving the Dedekind-infinite issue in Case 2.
The point is not that any of these cases are realistic, and instead, the point is that none of these cases are realistic, yet these are the only possible cases. The conclusion is therefore, that there doesn’t seem to be any clear path to a perfect model of the Universe, even if we have perfect physics.
Intuitive Infinity
Once I had completed the result above, I started thinking about infinity again, and I realized you can prove that a number is Dedekind infinite if and only if it is greater than all integers, which I call “intuitively infinite”. Dedekind infinity is great, and forces you to think about sets, but you also want to be sure that the idea comports with intuition, especially if you’re going to use the notion to derive physically meaningful results like we did above. Now this could be a known result, but I don’t see it mentioned anywhere saliently, and you’d think it would be, so since I’m frankly not interested in doing any diligence, here’s the proof.
Let’s start by saying a number is intuitively infinite if it is greater than all natural numbers. Now assume that and there is a one-to-correspondence . Further assume that the cardinality of , written , is not intuitively infinite, and as such, there is some , such that . Because is one-to-one, it must be the case that , but because , there must be some such that . Because , it must be the case that , but this contradicts the assumption that is one-to-one. Therefore, if and there is a one-to-correspondence , then is intuitively infinite.
Now assume that is intuitively infinite and further let be some singleton. It would suffice to show that , since that would imply that there is a one-to-one correspondence from to one of its proper subsets, namely . Assume instead that . It must be the case that , since you can show there is no smaller infinite cardinality. Because we have assumed that , then it must be the case that , since removing a singleton from a countable set does not change its cardinality. Note we are allowing for infinite numbers that are capable of diminution by removal of a singleton arguendo for purposes of the proof. Analogously, it must be the case , since assuming would again imply that adding a singleton to a countable set would change its cardinality, which is not true. As such, because , there must be some such that . That is, we can remove a subset from and produce a countable set .
As such, because , it must be the case that . However, on the lefthand side of the equation, the union over does not contribute anything to the total cardinality of , because is countable and is a singleton, whereas on the righthand side does contribute to the total cardinality because , which we’ve assumed to have a cardinality of less than . This implies that the number of elements contributed to an aggregation by union is not determined by the number of elements in the operand sets, and instead by the order in which we apply the union operator, which makes no sense. Therefore, we have a contradiction, and so , which completes the proof.
In a paper entitled, “A New Model of Computational Genomics” [1], I introduced an algorithmic test for ancestry using whole-genome mtDNA. I’ve since updated that test significantly, as described below. In this first of what will be a series of articles, I will present the results of this test as applied to specific regions of the world, in this case, to Scandinavia. Each of the articles will contain an independent summary of the algorithm and its overall results, and so you can read each independently.
Algorithmic Testing for Ancestry
Assume you’re given whole mtDNA genomes A, B, and C. The goal is to test whether genome A is the ancestor of both genomes B and C. It turns out, this is straight forward as a necessary (but not sufficient condition) for ancestry. Specifically, if we begin with genome A, and then posit that genomes B and C mutated independently away from genome A (e.g., groups B and C travelled to two distinct locations away from group A), then it is almost certainly the case that genomes B and C have fewer bases in common with each other, than they have in common with genome A.
For intuition, because we’ve assumed genomes B and C are mutating independently, the bases that mutate in each of B and C are analogous to two independent coins being tossed. Each mutation will reduce the number of bases in common with genome A. For example, if genome B mutates, then the number of bases that A and B have in common will be reduced. Note we are assuming genome A is static. Because B and C are mutating independently, it’s basically impossible for the number of bases in common between B and C to increase over time. Further, the rate of the decrease in common bases is almost certainly going to be higher between B and C, than between A and B, and A and C. For example, if there are 10 mutations in each of genomes B and C (i.e., a total of 20 mutations combined), then the match counts between A and B and A and C, will both decrease by exactly 10, whereas the match count between B and C should decrease by approximately 20. Let |AB| denote the match count between genomes A and B. We have then the following inequalities:
Case 1: If genome A is the common ancestor of both genomes B and C, then it is almost certainly the case that |AB| > |BC| and |AC| > |BC|. See, [1] for further details.
Even though this is only a necessary condition for ancestry, this pair of inequalities (coupled with a lot of research and other techniques), allowed me to put together a complete, and plausible, history of mankind [2], all the way back to the first humans in Africa.
Ancestry from Archaic Genomes
The simple insight I had, was that if A is not archaic, and B is archaic, then A can’t credibly be the ancestor of B. That is, you can’t plausibly argue that a modern human is the ancestor of some archaic human, absent compelling evidence. Further, it turns out the inequality (since it is a necessary but not sufficient condition) is also consistent with linear ancestry in two cases. Specifically, if |AB| > |BC| and |AC| > |BC|, then we can interpret this as consistent with –
Case 2: B is the ancestor of A, who is in turn the ancestor of C.
Case 3: C is the ancestor of A, who is in turn the ancestor of B.
If you plug in A = Phoenician, B = Heidelbergensis, and C = Ancient Egypt, you’ll find the inequality is satisfied for 100% of the applicable genomes in the dataset. Note that the dataset is linked to in [1]. It turns out you simply cannot tell what direction time is running given the genomes alone (unless there’s some trick I’ve missed), and so all of these claims are subject to falsification, just like science is generally. That said, if you read [2], you’ll see fairly compelling arguments consistent with common sense, that Heidelbergensis (which is an archaic human), is the ancestor of the Phoenicians, who are in turn the ancestors of the Ancient Egyptians. This is consistent with case (2) above.
Putting it all together, we have a powerful necessary condition that is consistent with ancestry, but not a sufficient condition, and it is therefore subject to falsification. However, one of these three cases is almost certainly true, if the inequalities are satisfied. The only question is which one, and as far as I can tell, you cannot determine which case is true, without exogenous information (e.g., Heidelbergensis is known to be at least 500,000 years old). You’ll note that cases (1), (2), and (3) together imply that A is always the ancestor of either B or C, or both. My initial mistake was to simply set B to an archaic genome, and assert that since A cannot credibly be the ancestor of B, it must be the case that A is the ancestor of C. Note that because A cannot credibly be the ancestor of B, Cases (1) and (3) are eliminated, leaving Case (2), which makes perfect sense: B is archaic, and is the ancestor of A, who is in turn the ancestor of C. However, this is not credible if C is also archaic, producing a lot of bad data.
Updated Ancestry Algorithm
The updated algorithm first tests literally every genome in the dataset, and asks whether it is at least a 60% match to an archaic genome, and if so, it treats that genome as archaic for purposes of the test, so that we avoid the problem highlighted above. This will allow us to reasonably assert that all tests involve exactly one archaic genome B, and therefore, we must be in Case (2). Interestingly, some archaic populations were certainly heterogenous, which is something I discussed previously. As a result, there are three ostensibly archaic genomes in the dataset, that do not match to any other archaic genomes in the dataset, and they are therefore, not treated as archaic, despite their archeological classification. You can fuss with this, but it’s just three genomes out of 664, and a total of 19,972,464 comparisons. So it’s possible it moved the needle in marginal cases, but the overall conclusions reached in [2] are plainly correct, given the data this new ancestry test produced.
There is however the problem that the dataset contains only Heidelbergensis, Denisovan, and Neanderthal genomes, leaving out e.g., Homo Erectus, and potentially other unknown archaic humans. There’s nothing we can do about this, since we’re constantly finding new archaic humans. For example, Denisovans were discovered in 2010, which is pretty recent, compared to Heidelbergensis, which was discovered in 1908. Moreover, the three genomes in question are possibly three new species, since they don’t match to Denisovan, Heidelbergensis, or Neanderthals. All of that said, taken as a whole, the results produced by this new algorithm, which makes perfect theoretical sense and must be true, are consistent with the results presented in [2]. Specifically, that humans began in Africa, somewhere around present day Cameroon, migrated to the Middle East, then Asia, producing the three most evolved maternal lines that I’ve identified, somewhere around Nepal, specifically, the Ancient Egyptians, the Vikings, and the Ancient Romans. The first two maternal lines are both found around the world, and descend from Heidelbergensis and Neanderthals and / or Denisovans, respectively, suggesting that many modern humans are a mix between the most evolved maternal lines that originated in three distinct archaic human populations, effectively creating hybrids. The Ancient Roman maternal line no longer exists, and seems to have been deliberately annihilated. For your reference, you can search for the Pre Roman Ancient Egyptian genome (row 320, which descends from Heidelbergensis) and the Icelandic genome (row 464, which descends from either Neanderthals or Denisovans, or both, it’s not clear).
Maternal Ancestry Among Scandinavians and Germans
Intuition suggests that the Sami People, who are indigenous Scandinavians, should as a general matter test as the ancestors of at least some Scandinavian people. At the same time, because all but the Finns and Sami speak Germanic languages, we would expect the Germans to test as the ancestors of at least some Scandinavian people. All of that said, during the Viking Age, the Scandinavians made use of a Phoenician-like alphabet, known as Runes, and so it’s at least possible we should see either Continental European ancestry (e.g., the Basque used similar scripts in antiquity), Middle Eastern ancestry, or some other form of ancestry that explains this otherwise anomalous alphabet. We will examine each of these questions below using the ancestry test.
Levänluhta
Levänluhta is an underwater gravesite in Finland that contains the remains of about 100 individuals from the Iron Age (c. 800 to 500 BC). Though Scandinavia has been occupied by humans since the Stone Age, common sense says that these individuals should test as the ancestor of at least some modern Scandinavians. This is indeed the case, and in fact, these individuals test as even more ancient than the Sami People, which you can see in the chart below. A positive number indicates that the population in question is a net ancestor, whereas a negative number indicates that the population in question is a net descendant. That is, if e.g., X is the number of times the ancestry test was satisfied from Sweden to Norway, and Y is the number of times the ancestry test was satisfied from Norway to Sweden, the chart below plots X – Y for each population. As you can see, all other Scandinavian groups test as the descendants of the individuals buried in Levänluhta. You can find the acronyms used below at the end of [1], but for now note that FN = Finland, NO = Norway, SW = Sweden, DN = Denmark, SM = Sami, IL = Iceland, and AF = Ancient Finland (i.e., Levänluhta). If you look at the ancestors of the individuals buried in Levänluhta (i.e., X – Y > 0), you’ll see HB = Heidelbergensis, AN = Andamanese, and other archaic populations, suggesting the individuals buried in Levänluhta are somewhere between archaic humans and modern humans, despite being a relatively recent Iron Age gravesite.
The Sami People
The Sami People are indigenous Scandinavians that speak an Uralic language and live in Northern Scandinavia, spanning Sweden, Norway, Finland, and Russia. For context, Uralic languages are spoken in regions around Finland, including Finland itself, Estonia, parts of Russia, as well Hungary. Uralic languages are to my knowledge not related to Germanic languages. As such, we should not be surprised if the Sami have a maternal ancestry that is distinct from the rest of the Scandinavians and Germans. This is in fact the case, and in particular, the Sami contain a significant amount of Denisovan mtDNA. See, [1] for more details. As noted above, Denisovans are a relatively recently discovered subspecies of archaic humans. The main archeological site where they were discovered is the Denisovan Cave in Siberia, and the dataset includes 8 Denisovan genomes from that site.
Above is the net maternal ancestry of the Sami people, where, again, a positive number indicates that the population in question is an ancestor of the Sami, and a negative number indicates that the population in question is a descendant of the Sami. As you can see above, all other living Scandinavian people test as the descendants of the Sami, making the Sami the most ancient among the living Scandinavian people.
The Finnish People
As noted above, the Finnish people speak an Uralic language, like the Sami, and as such, we should not be surprised if they have a distinct ancestry from the rest of the Scandinavians. This is in fact the case, though they are one step closer to modern Scandinavians than the Sami, and as you can see below, all Scandinavian people (other than the Sami) test as the descendants of the Finns.
Now this doesn’t mean that all the other Scandinavians descend directly from the Finns, which is too simple of a story, but it does mean that when comparing Finns to the rest of the Scandinavians (save for the Sami), it is more likely that a given Finn will test as the ancestor of a given Scandinavian, than the other way around. This is not terribly surprising since the Finns speak a completely different language that has (to my knowledge) an unknown origin, suggesting the language is quite ancient, and the Finns seem to be as well. The Finns also have a significant amount of Denisovan mtDNA from Siberia, which is again consistent with the claim that the Finns are, generally speaking, the second most ancient of the living Scandinavians.
The Danish People
Like the Finns, the Danes also contain a significant but lesser amount of Siberian Denisovan mtDNA, and they similarly test as the ancestors of all other Scandinavians, other than the Finns and Sami, making them the third most ancient Scandinavian population. Note however that Danish is a Germanic language, suggesting independence between Uralic languages and Denisovan mtDNA, though there does seem to be some reasonable correlation.
The Norwegian People
The Norwegian people contain no meaningful quantity of Denisovan mtDNA, and they test as the fourth most ancient of the living Scandinavians. Note that the Sami, Finns, and Danes test as the net ancestors of the Norwegians, whereas the Swedes and Icelandic people test as the descendants of the Norwegians. Finally note that the Norwegians speak a Germanic language.
The Swedish People
The Swedes contain no meaningful quantity of Denisovan mtDNA, and they test as the fifth most ancient of the living Scandinavians, and are therefore more modern than the rest, save for the Icelandic (discussed below). The Swedes speak a Germanic language that is very similar to Norwegian, though the Swedes are notably distinct from the Norwegians in that they test as the descendants of the Germans, whereas the rest of the Scandinavians discussed thus far test as the ancestors of the Germans.
The Icelandic People
There is only one Icelandic genome in the dataset, but as you can see below, it is very similar to the Swedish population generally. Further, this genome tests as the descendant of all Scandinavian populations, and more generally, has only three descendants: the Ancient Romans, the Irish, and the Munda people of India. The Ancient Romans generally test as the descendants of the Northern Europeans, and are in fact the most modern population in the dataset according to this test. The Munda people of India are probably not Scandinavian, and instead, the Scandinavians and the Munda presumably have a common ancestor in Asia, consistent with the “Migration-Back Hypothesis” I presented in [2], that humanity begins in Africa, spreads to Asia, and then back to Northern Europe and Africa, as well as spreading into East Asia. Dublin was founded by the Vikings, so it is no surprise that some Irish test as the descendants of the Icelandic. However, there is only one Icelandic genome in the dataset, and so while we can’t say much about the Icelandic people in general on the basis of the dataset alone, because Iceland was (to my knowledge) uninhabited prior to the Vikings, it’s presumably the case that the people of Iceland are literally direct descendants of the Vikings, whereas in contrast, Scandinavia (as noted above) has been inhabited by humans since the Stone Age.
The Origins of the Runic Alphabet
Note that the Swedes and Icelandic are the only Scandinavians that test as a descendant as opposed to an ancestor of the Germans. This could explain why the majority of the Rune Stones are in Sweden, as opposed to the rest of Scandinavia. Specifically, the hypothesis is that Germanic people brought the Phoenician-like alphabet of the Runic Scripts to Sweden. As noted above, the Basque used a similar alphabet, who are also of course Continental Europeans, and so the overall hypothesis is that people of the Mediterranean (e.g., the Phoenicians themselves) brought their alphabet to the Continental Europeans, and the Germans brought that alphabet to the Swedes.
Asian and African Ancestors and Descendants of the Scandinavians
You’ll note in the charts above that some African and Asian people test as the ancestors and / or the descendants of the Scandinavians, in particular the Nigerians and Tanzanians, and the Koreans, Thai, and Japanese (though there are others). Though this might initially seem puzzling, it is instead perfectly consistent with the Migration-Back Hypothesis presented in [2], which asserts that many modern humans, in particular Northern Europeans, East Asians, and many Africans are the descendants of common ancestors from Asia.
The Ancient Mediterranean
The Ancient Romans are clearly descendants of the Northern Europeans, but I’ve found similar Italian genomes that are 35,000 years old. This implies that the most evolved genomes in the dataset are still at least 35,000 years old, and were already in Italy, long before Ancient Rome. The question is then, if the stage was set 35,000 years ago, in that the modern maternal lines were fully formed, why is that it took so long for civilization to develop? One possibility is that there was further evolution on the male line, or the rest of the genome, which is probably true given that mtDNA is, generally speaking, very slow to evolve.
However, civilization has geography to it, and it is simply impossible to ignore the Mediterranean, which produced the Ancient Egyptians, Mesopotamians, Ancient Greeks, and Ancient Romans, as well as others. Why did these people so drastically outperform literally all other humans? I think the answer is written language, and in turn, mathematics. That is, my hypothesis is that the genetics only gets you so far, and that you’ll find people very similar to e.g., the Phoenicians and Ancient Egyptians in other parts of the world that simply didn’t produce on the scale that the Mediterraneans did, and that the gap was driven by written language, which in turn allows for written mathematics, and everything that follows, from accurate inventories and contracts, to predictions about the future. That said, of all the Ancient and Classical people in the dataset, none of them contain any archaic mtDNA, suggesting maternal evolution really did play a role in intelligence and human progress.
This is difficult for modern people to appreciate, but imagine having no idea what happened a few weeks ago, and how that could leave you at a loss, or even put you at risk. At a minimum, written records reduce the risk of a dispute. Now imagine having no written system of mathematics, and trying to plan the construction of a structure, or travel over a long period of time. You’d have no means of calculating the number of days, or the number of individuals required, etc. Once you cross this milestone, it becomes rational to select mates on the basis of intelligence, which is a drastic shift from what happens in nature, which is selection for overall fitness. This seems to create a feedback loop, in that as civilizations become more sophisticated, intelligence becomes more important, further incentivizing selection for intelligence, thereby creating a more intelligent people.
This is not to diminish the accomplishments of other people, but it’s probably the case that the Mediterranean people of the Ancient and Classical periods were the most intelligent people in the world, at the time, which forces the question, of what happened to them? There’s unambiguous evidence that they were literally exterminated, at least in the case of the Romans. The thesis would therefore be that the Romans were slowly and systematically killed to the point of extinction, by less evolved people, creating the societal collapse and poverty that followed for nearly 1,000 years, until the Renaissance.
Unfortunately, it seems plausible the same thing is happening again. Specifically, consider that there have been no significant breakthroughs in physics since Relativity, which we now know is completely wrong. Also consider the fact that the most powerful algorithm in Machine Learning is from 1951. Not surprisingly, microprocessors have been designed using what is basically A.I., since the 1950s. So what is it then that these ostensible A.I. companies do all day? They don’t do anything, it’s impossible, because the topic began and ended in 1951, the only thing that’s changed, is that computers became more powerful. They are with certainty, misleading the public about how advanced A.I. really is, and it’s really strange, because scientists during the 1950s and 1960s, weren’t hiding anything at all. Obfuscation and dishonesty are consistent with a nefarious purpose, and companies like Facebook probably are criminal and even treasonous enterprises, working with our adversaries, and are certainly financed by backwards autocracies like Saudi Arabia.
If you’re too intelligent and educated, then you will know that the modern A.I. market is literally fake, creating an incentive to silence or even kill the most intelligent people, which is consistent with the extremely high suicide rate at MIT. It suggests the possibility that again, intelligent people are being exterminated, and having a look around at the world, it’s obvious that civilization is again declining, arguably when compared to the turn of the 20th Century, and certainly since the end of World War II. I think we all know who’s responsible, and it’s probably not Scandinavians.
Earlier this week I introduced a new ancestry algorithm, that is really incredible. It’s based upon a previous algorithm I introduced a few years back in a paper called “A New Model of Computational Genomics” [1]. The core difference between the new algorithm, and the algorithm introduced in [1], is that the algorithm introduced in [1] is a necessary but not sufficient condition for ancestry. This new algorithm, is instead a necessary and sufficient condition for ancestry, with a clearly identifiable risk, that is discussed in the note linked to above. Specifically, the risk is that the dataset only contains Denisovan, Heidelbergensis, and Neanderthal genomes, and as a consequence, because the test assumes it is considering exactly one archaic genome at a time, if it encounters e.g., Homo Erectus mtDNA, it won’t be able to identify it. Because the list of archaic humans keeps growing, this is a real and unavoidable risk, but as a whole, the algorithm clearly produces meaningful results. Most importantly, it produces results that are consistent with my “Migration Back Hypothesis” [2], that humanity began in Africa, migrated to the Middle East, then to Asia, and then came back to Europe and Africa, and spread further out from Asia into South East Asia.
The narrative is that life begins in Africa, somewhere around Cameroon, and this is consistent with the fact that the modern people of Cameroon test as the ancestors of Heidelbergensis, Neanderthals, and archaic Siberian Denisovans. See [2] for details. Heidelbergensis is clearly the ancestor of the Phoenicians, and you can run the test to see this, or read [2], where I actually analyze the Phoenician and Heidelbergensis genomes, segment by segment, demonstrating a clear ancestry relationship. The Phoenicians are in turn the ancestors of the Old Kingdom Ancient Egyptians, and this is where things get complicated.
The Old Kingdom Ancient Egyptians are obviously Asian, and this is based upon archeology, where depictions of Ancient Egyptian leaders and others are obviously of Asian origin, in particular Nefertiti. This checks out with the Old Kingdom Ancient Egyptian genome in the dataset, as it is a 99% match to many South East Asians in Thailand, Korea, and Japan in particular. The Phoenicians are clearly the maternal ancestors of the Ancient Egyptians, and so the question is, did the Phoenicians travel to Asia, eventually producing the Ancient Egyptian maternal line? The answer according to the new test is again yes, specifically, the modern Sardinians (who are basically identical to the Phoenicians) test as the ancestors of the modern Sri Lankan people. Previously, I did exactly this test in [2], and in that case, the Phoenicians again tested as the ancestors of the Sri Lankan people. The problem in [2], is that it was a low confidence answer, whereas the updated test provides a high confidence answer, drawn from the entire dataset of genomes. Finally, I’ll note that many modern Scandinavians and some other Europeans (typically in the North) are 99% matches to the Ancient Egyptian line. Putting it all together, humanity begins somewhere around Cameroon, migrates to the Middle East, and then migrates to Asia, where it then spreads back to Northern Europe and Africa, and spreads further into South East Asia. This is not different from the thesis presented in [2], but that thesis is now supported by a single test that draws on every genome in the dataset, creating clear scientific evidence for what was presented in [2] as a mix of archeological, scientific, and common sense reasoning.