Biology,  Computing,  Logic,  Mathematics

Reasoning and Semantic Computation

Since the advent of computers, it has been widely believed that the human mind is just like a computer. I have previously described why this is a false analogy due to two problems: (1) the problem of meaning, and (2) the problem of choice. I have also discussed the problem of meaning in computing theory in the book Gödel’s Mistake. However, all these critiques are inadequate without an understanding of how nature itself computes. For example, if nature is governed by some natural laws, then these laws have to be computed on some machine to obtain a prediction. How is nature computing these predictions? Even otherwise, living beings are constantly involved in decision making—i.e. what next steps must I take to achieve my goals?—which is also a computational problem. This post discusses a proposal on how this problem should be tackled, and the relation between Sāńkhya and computational theory.

 The Nature of Semantic Reasoning

Life is full of decisions, which the human mind grapples with as a set of goals and constraints. The goals include (as seen previously), the quest for meaning and happiness. The constraints include the objective material reality that exists independent of the observer, and the specific parts of that reality which interact with the observer. Our goals are often inconsistent, and they need to be prioritized through choices. Therefore, sometimes happiness has a higher weight while at other times meaning has a greater importance. Similarly, the external objective reality and the parts of the reality with which we interact are also continuously evolving. Within this context of the changing world, the changing relationships to the world, and the changing goals, we are required to make decisions.

In modern computational theory, these are called Optimization Problems and Operations Research. Of late, Game Theory and Decision Theory are also used for such purposes. All of these branches are based upon a single question: How do we arrive at the best decision given a reality, a relation to that reality, with the aim to achieve a goal? The methods of semantic reasoning are also relevant to Machine Learning. The idea is that our decisions may not be perfect, and we need to learn how to make better decisions by observing the consequences of previously made decisions. By learning to make better decisions, we can better achieve the intended goals—i.e. meaning and happiness. In some cases, if the goals are not achieved with the given reality, or the relation to that reality, then the goals themselves may be altered to suit what is achievable. Or, a creative problem solver can find a way to compromise some goals, while succeeding much better on others. Finally, there is always an option to change the reality and our relationship to it.

Reasoning is a computational problem because it involves the interaction of the following components—(1) the goals of meaning, (2) the goals of pleasure, (3) the objective external reality, (4) an observer’s relationship to that reality, and (5) the decision making process. The problem involves the decision of what to change: Should we change our goals of meaning and pleasure? Or, should we alter the reality consistent with the goals? Or, should we find that specific reality which meets our goals? All these options are technically viable, and they are therefore the possible outcomes of the decision process.  

Semantic Reasoning and Computation

I term the problem of decision making Semantic Computation in contrast to Artificial Intelligence because the former takes meanings into account while the latter does not. Meanings cannot be incorporated into current computation theories because concepts are defined through oppositions (such as hot vs. cold) which lead to logical contradictions within the bi-stable logical system (this is called Gödel’s Incompleteness as discussed earlier). Contradictions in a logical system mean that reasoning has to be limited to one side of the opposition (e.g. hot or cold) which makes the reasoning system always incomplete and therefore incapable of answering many valid questions.

When concepts are evicted from computation, the system is limited to finding correlations between variables. This is widely used today for various comprehension problems such as Natural Language Processing and Pattern Recognition. The key difference between this and what I call Semantic Computation is that the latter uses meanings—i.e. qualities, abstractions, and references.

How Does Nature Compute?

From its inception, the idea of a “scientific law” has been very problematic because science only describes causes and effects without describing the computer that calculates its predictions. Eugene Wigner called this the “Unreasonable Effectiveness of Mathematics in Natural Sciences” arguing that “The miracle of the appropriateness of the language of mathematics for the formulation of the laws of physics is a wonderful gift which we neither understand nor deserve.” We assume that nature is doing calculus and adding and multiplying numbers without describing how this computation actually works in nature.

A machine that performs calculations is presently called a Universal Turing Machine (UTM). A UTM can accept a program to simulate an arbitrary Turing Machine (TM). But no physical theorist at present describes the UTM of the universe that computes various laws or TM. Ideally, we would imagine that there is a UTM, which is divided into many scientific theories called TMs, which is then instantiated as specific objects and phenomena—that are programs running on the UTM—computing their next state (i.e. making rational decisions). However, no such natural theory of computation exists.

Computation and Semantic Reality

Programs also suffer from the problems of semantics. Like Gödel’s Incompleteness limits the reduction of concepts to numbers, similarly, Turing’s Halting Problem limits the reduction of problems to numbers. The result is that we cannot be sure about the meaning of a sentence (Gödel’s Incompleteness) or the purpose of a program (Turing’s Halting Problem). Since we cannot know the meaning and the purpose, we also cannot know if the sentence is actually true, or whether the program will meet its intended purpose. My proposed resolution for both problems is a symbol hierarchy: just as a concept exists in a hierarchy, programs too have to be organized into a tree—and a program is considered “buggy” if it has a loop. In short, all meaningful programs must necessarily be a tree, because tree topology programs always terminate. For the interested reader, Gödel’s Mistake discusses the problems of semantics in mathematics and computing, showing how the problems arising in the description in numbers appear in computing programs too.

The key point is that there is a type of logical machine that we call “computers” which is studied in Theoretical Computer Science but never given a fundamental physical reality. As a result, how the desire for meaning and happiness is translated into real-world actions cannot be understood.

Computation in Sāńkhya Philosophy

As discussed in an earlier post, Sāńkhya Philosophy describes the material world as a hierarchical tree in which prāna is the agency that takes the consciousness from one branch of the tree to another. This transition from branch to branch involves what I called “semantic reasoning” above, and which others have termed “rationality”.  Prāna is thus the “force” that is creating new experiences, and it acts in many ways. In some ways (called prāna and apāna) it acts to attach and detach child nodes to the tree. In other ways (called vyāna), it moves the child node from one part of the tree to another. An observer can therefore be fixed to a tree and gain incremental experiences, which involve seeing the world, or eating food, for example. Experiences can also involve the observer being moved from one part of the tree to another and thus getting a new body. Prāna, however, is not a physical force which acts based on physical properties such as mass or charge. It rather acts on concepts—which includes the body and the mind—attaching and detaching the concepts as child and parent, cloning the concepts, and dividing the concepts.

As earlier noted, prāna has five components that are involved in ingestion, digestion, integration, expression, and rejection of matter. Since matter is treated as concepts in Sāńkhya, these processes by which concepts are taken as input (ingestion), understood (digested), moved from one place to another to create a result (assimilation), following which the result is cloned to produce an output (expression), while removing some ideas as a result of this integration (rejection), is a process that perfectly describes semantic computation. Current Turing Machines describe computation as only two processes–i.e. reading and writing on a tape. Sāńkhya, on the other hand, describes computation as the five stages of ingestion, digestion, assimilation, expression, and rejection. This model of computation is exactly like the working of living body, and is often described as such. However, when the body is understood as a tree, then these forces can be given a very rigorous meaning involving different steps in the computational process. 

All concepts in Sāńkhya (from sense objects to sense properties to senses to the mind, intellect, ego, and morality) are treated as numbers; indeed Sāńkhya means a “theory of counting” or a “theory of numbers”. The tree of concepts indeed represents numbers, quite like any hierarchical numbering scheme (including present day decimal and binary number systems). Present computational theory, however, flattens this tree into a tape. Thus, a hierarchical three-dimensional structure is reduced to a single dimensional structure, which results in the loss of meanings and purposes. The resulting computational theory is therefore not an adequate representation of how we would describe computation if we thought of numbers as trees rather than just digits. The computational proposal in Sāńkhya is therefore far more intuitive than present day computation because it works directly with the tree, and adding, removing, cloning, moving, and dividing the nodes on a tree. It is a three-dimensional model of computation rather than a single-dimensional model working with a linear tape.

Finally, as discussed here and here, Sāńkhya also reduces all concepts, algorithms, programs, and objects to three modes called sattva-guna, rajo-guna, and tamo-guna which constitute a different logic, which can be used to construct a machine.

I will therefore contend that the task of formulating a general theory of semantic computation can greatly benefit from several ideas that Sāńkhya elucidates: (1) there is a natural process for computation, (2) matter is reducible to numbers, which are branches of a tree, and (3) the nodes on this tree are constructed logically out of fundamental states involving a three-state logic, and (4) the computation occurs in a three-dimensional space. A scientific understanding of how prāna interacts with the three modes of nature, therefore, constitutes a formal theory of semantic computation in which energy is applied to create, modify, and destroy nodes on a tree. This computation process should be viewed as the process of performing the task of automated reasoning.

Programs and Data

It’s noteworthy that modern computing encodes both data programs as numbers although they are stored in physically separate locations. In the widely used Von Neumann Architecture, data and programs reside in separate memory regions (of a single physical storage device), while in the Harvard Architecture they were stored in physically separate memories. The key point is that the program is also information, but quite distinct from the input and output of a program.

The inputs and outputs of a program are conceptual trees. Associated with this tree is another tree which represents the possible paths on which the tree can be modified into a new tree. We can call these two kinds of trees as objects and trajectories. These are two complementary kinds of trees, which have previously been represented in physics as the properties called position and momentum. The object tree is the “position” tree while the program tree is the “momentum” tree. Owing to these two properties, a two-dimensional space is required to represent an object at a given level of abstraction; the third dimension is the hierarchy within each of the trees. Thus, each tree has a vertical and a horizontal dimension (which the Turing Machine) flattens into a single dimensional tape. Similarly, there are two parts of this single dimension in a Turing Machine which represent data and programs, and these parts are actually two separate dimensions, even in current physical theories. They need to be treated as separate dimensions in a semantic description too, when this description denotes a computing machine. But the three dimensions are not physical; each dimension denotes a conceptual difference. 

Understanding Biological Machines

We are all familiar with the nervous system in the body, which controls the body. There is a part of the control that involves conscious action including the senses and the mind. There is also a significant part of the control that remains completely outside of our consciousness. In fact, even the things that we claim to consciously control seem to involve significant amounts of unconscious control. For example, the Autonomic Nervous System controls unconscious changes such as breathing and blood circulation (the Parasympathetic Nervous System), and flight-or-fight reactions (Sympathetic Nervous System). Similarly, the conscious control of hands (e.g. during typing) or the semi-conscious control of legs (e.g. during swimming or cycling) are managed by the Somatic Nervous System in the body.

All these kinds of nervous systems in the body are unconscious, and yet, they are performing the activities that we can see. Similarly, the acquisition of new ideas, the process of analyzing a new idea against an established set of beliefs, using new ideas to create new goals, or rapidly adjusting our body when danger arises while driving in a car, are numerous examples of complex unconscious computational activities that occur in conjunction with conscious activities such as sensation and thinking.

There is an acute need to reconcile the conscious senses and the mind, with much that happens unconsciously in the body. In modern science, consciousness is an illusion. In fact, even sensation and thoughts are illusions because matter doesn’t have the properties of abstraction, qualities, and reference. Both conscious and unconscious processes are therefore described using physical principles that don’t involve consciousness. Now if we flip the approach and make the world semantic, such that large parts of the world become conscious, we still have to find a way to reconcile the conscious and the unconscious.

Reconciling the Conscious and the Unconscious

I will propose that what we call the “unconscious” is essentially all the content or what we call meaning and pleasure, knowledge and activity (data and programs). This unconscious world exists eternally because it is conceptual and all concepts are eternal. However, all these concepts only exist in the unmanifest state as possibility. They are converted into an experience through choice and time. That choice involves prioritizing meaning over pleasure (or vice versa), or a particular branch of the activity tree among the possible branches, or a particular branch of the conceptual tree over other branches. The interaction between the conscious and the unconscious is simply the act of prioritizing or choosing one possibility from among the many alternatives.

The choice that selects one among the many is also an activity, but it is not material. The material activity is the programs which constitute trajectories. The non-material activity is picking one of the many programs to execute. If none of the choices are made, the world will still evolve as a possibility—i.e. what is possible in the world will change over time—although we would not experience it. The conscious choices are therefore not changing the world; they are simply participating in the world. The common Western interpretation of choice is that one changes the world by choice. The Sāńkhya understanding of choice is that you only participate in the world by becoming aware of it. The world is thus like a movie; if you open your eyes you will see the events in the screen and by that you are participating in it. If you close your eyes then you are not participating.

The movie itself goes on unhindered whether or not you do anything. Our choice is only about which particular part in the movie I want to identify with, and, which particular scenes I should have my eyes open or shut. The law of nature is that depending on which characters you play, and which scenes you participate into, creates the new scenes for you.