Software Is Mathematics—The Need for Due Diligence
~ By PolR
[This article is licensed under a Creative Commons License.]
Judging from the comments we have received in response to A Simpler Explanation of Why Software Is Mathematics, there seems to be a category of readers who just can't bring themselves to believe that software could possibly be mathematics. The prevailing attitude among these persons appears to be best summarized by this extract of this comment:
Here is where you are going completely wrong: There are things that we want or don't want to be patentable, and there are things that the current law and current common interpretations of the law say are patentable or not patentable, and the two don't agree. Since something needs to be done about it, you try to bend things out of shape so that software should be interpreted in a way that makes it nonpatentable.
People who think like this saw the explanation of why software is mathematics as rhetoric in support of a conclusion. They objected to the overall tenor of the article on the basis that in their opinion the very notion that software is mathematics can't be true. They didn't dispute the evidence I provide. They presumed that the article as a whole had to be wrong and they didn't discuss the details.
But the explanation of why software is mathematics is more than rhetoric. It is based on the observation that the legal view of computers is factually incorrect.
Case law on the patentability of software has been decided on the basis of an incomplete and erroneous set of facts. Most of the argument is about showing the complete and correct set of facts, supported with evidence. Even if one rejects the conclusion that software is mathematics, the facts still remain. It is still possible to argue in favor of changes in case law on the basis of the facts without raising the question of whether software is mathematics.
This article is targeted at these skeptics. I will try to show them the factual nature of the argument. Even if they can't believe that software is mathematics and don't trust me as a source of information, they still need an independent evaluation of the facts from some expert they will trust. This should answer their fear that things might be bent out of shape.
The point is due diligence. Section 101 subject matter patentability is not settled law when software is considered. The Federal Circuit and the Supreme Court are struggling with these issues. Showing the courts material facts not previously considered increases the uncertainty. Anyone who conducts some business which depends on software patents and anyone who is at risk of patent related liabilities should evaluate the probabilities and possible consequences of new precedents being issued. Failure to do so is either setting oneself for a nasty surprise or forgoing a promising opportunity.
Let's examine an outline of the argument, just to put things in context. I don't supply the evidence here because the goal here isn't to convince anyone that the argument is correct. It is to provide motivation for doing due diligence. You will find the evidence in previous articles.
This outline will contain some statements of objectively verifiable facts. I will itemize them separately when I am done with the outline. These facts will provide the motivation for due diligence.
Just assume we have some patent claim. One may ask, what is the mathematics which is argued to be in this patent? We find out by following the very same reasoning the law uses to identify the patentable subject matter when software is claimed. This reasoning is summarized in WMS Gaming, Inc. v. International Game Technology as follows:
The structure of a microprocessor programmed to carry out an algorithm is limited by the disclosed algorithm. A general purpose computer, or microprocessor, programmed to carry out an algorithm creates "a new machine, because a general purpose computer in effect becomes a special purpose computer once it is programmed to perform particular functions pursuant to instructions from program software." In re Alappat, 33 F.3d 1526, 1545, 31 USPQ2d 1545, 1558 (Fed.Cir. 1994) (en banc); see In re Bernhart, 57 C.C.P.A. 737, 417 F.2d 1395, 13991400, 163 USPQ 611, 61516 (CCPA 1969) ("[I]f a machine is programmed in a certain new and unobvious way, it is physically different from the machine without that program; its memory elements are differently arranged."). The instructions of the software program that carry out the algorithm electrically change the general purpose computer by creating electrical paths within the device. These electrical paths create a special purpose machine for carrying out the particular algorithm.[3]
[PolR: This refers to footnote 3 which is quoted below]
[3] A microprocessor contains a myriad of interconnected transistors that operate as electronic switches. See Neil Randall, Dissecting the Heart of Your Computer, PC Magazine, June 9, 1998, at 25455. The instructions of the software program cause the switches to either open or close. See id. The opening and closing of the interconnected switches creates electrical paths in the microprocessor that cause it to perform the desired function of the instructions that carry out the algorithm. See id.
According to this reasoning, the activity of the transistors is the process by which a machine operates. This is patentable, by this view. And programming the computer according to this legal logic defines the transistor activity. This is said to make a special purpose machine which is also patentable.
Now let's look at some facts about computers and software. The electrical signals are physical representations of symbols called bits. The activity of the transistors is a manipulation of these symbols. The transistors carry out a procedure called the instruction cycle. This procedure is implemented in hardware in every computer which conform to the stored program architecture; this is about every modern digital computer. The instruction cycle is the process by which modern digital computers operate.
When we compare the instructions cycle with the criteria mathematicians have set forth in mathematical literature for a mathematical algorithm to be a mathematical algorithm, we find that they match. This is the core of the 'software is mathematics' argument. The computation carried out by the computer is always a mathematical computation pursuant to a mathematical algorithm which is the instruction cycle. The very same analysis which identifies in the claim some subject matter implemented by transistor activity also identifies subject matter implemented by the execution of the instruction cycle. This subject matter is the execution of a mathematical algorithm and we know which one. It is the instruction cycle.
It is not argued that when something is described mathematically then it must be mathematics. Refutations based on assuming this is the argument are moot. The argument is that the notions of computations and algorithms are mathematical concepts documented in mathematical literature and the computations of a computer match the requirements of the literature.
Mathematicians have put meaningful limits to what is and is not an algorithm. One of these limits is that an algorithm must be a procedure for manipulating symbols. Not everything is symbols and not everything is a procedure for manipulating symbols. For this reason the argument that software is mathematics cannot be extended into an argument that everything is mathematics.
The notion that software patents are actually hardware patents is false because software patents involve assigning meanings to symbols. Meanings are not physical properties of signals, and there is no instruction in the set of instructions a computer can recognize for assigning meanings to bits. The transistor activity which is said to be the patentable process is independent from the meanings of bits.
We may make a parallel with novels. A book is an article of manufacture made of ink and paper. Can we patent an article of manufacture based on the novel which is printed on the basis that it is all ultimately ink and paper? This is ignoring the existence of the printed text and its meaning. The same observation applies to computers. The bits have meanings. Without meanings assigned to bits, software has no utility, and without utility an invention is not patentable. Typically the meanings of bits is among the limitations recited in software patent claims.
Mathematics is a written language using symbols. Computations are a feature of this language which is used to solve problems by mathematical means. Software patents are granting exclusive right to utterances in this language, which happens to be computations. This should raise First Amendment issues.
The notion that programming a computer makes a new machine is factually erroneous. There are several ways of showing this. This outline of the argument mentions one of them. The process by which a computer operates is the instruction cycle. It does not change when the computer is programmed. Contrary to what WMS Gaming states, loading the instructions in memory does not cause electrical paths to be established within the computer. The process by which the computer operates remains the same instruction cycle no matter how the computer is programmed.
The instruction cycle is of the kind of computational procedures mathematicians call universal. It has the capability of carrying out every possible computation, provided it is given the appropriate input. Computers are not programmed by configuring electrical paths between transistors. They are programmed by giving data as input to the instruction cycle. The mechanism to give input to the instruction cycle is storing the data in the computer memory. This does not structurally change the computer because it does not change the process by which the computer operates. It supplies new input to an existing process.
This completes the outline of the argument. Now let's itemize the statements of objectively verifiable facts it contains.
Mathematical language is written with symbols.
Mathematical language is used to describe the real world.
Mathematical computations are manipulation of symbols according to rules called algorithms.
Computations pursuant to an algorithm solve problems by mathematical means.
Bits are symbols represented by electronic and other physical means.
Bits may have meanings.
Without meanings assigned to bits, software is useless.
Patents on software usually contain limitations on the meanings of bits.
The meanings of bits are not physical properties of the signals.
There are no instructions in a computer instruction set for assigning meanings to bits.
The transistor activity in a computer is independent from the meanings assigned to bits.
Most modern digital computers conform to the stored program architecture.
Computers conforming to the stored program architecture implement an instruction cycle.
The instruction cycle is the process by which most modern digital computers carry out computations.
The instruction cycle is a procedure for manipulating bits which is implemented in hardware.
The instruction cycle has the capability of carrying out every possible computation provided it is given appropriate data as input.
Storing information in computer memory does not establish electrical paths within the computer.
Programming a computer does not change the instruction cycle.
Computations and algorithms are mathematical notions studied in mathematics.
Mathematicians have given meaningful limits to the mathematical notion of algorithm.
The instruction cycle falls within the limits mathematicians have given to the mathematical notion of algorithm.
Not everything falls within the limits mathematicians have given to the mathematical notion of algorithm.
Please review these statements one by one. For each of these statements, ask yourself three questions. Is this statement factual? Is this objectively verifiable? Is this true? The correct answer to these question is “yes”, “yes” and “yes” for all these statements. Feel free to disagree and strike from the list all items you believe don't pass this test. Then you will have your own list of objectively verifiable facts that you believe are true.
Which conclusions may we support from these facts? Here is my list which is based on my list of facts. Feel free to strike all conclusions which cannot be supported from your list of facts. Then you will have your own list of conclusions you personally believe could be supported by facts.
The use of symbols and their meanings is not factored in case law about the patentability of software.
Software patents grant exclusive rights to computations which are utterances in mathematical language.
Software patents raise First Amendment issues because of their reliance on the meanings of symbols.
Software patents raise issues akin to those the printed matter doctrine is meant to solve because symbols and their meanings are involved.
The execution of software is not a purely physical process because it requires meanings to be assigned to symbols in order to be useful.
The use of symbols and their meanings are distinguishing software from pure hardware inventions. This raises the question of whether software is a process in the sense of the statute.
The execution of software is the execution of a mathematical procedure called an algorithm.
Computers don't work as WMS Gaming and the precedents this case relies on say they do.
The process by which a computer operates is not determined by the words of the patent because this process is always the instruction cycle built into the computer at the factory.
The process by which a computer operates is not determined by the words of the patent because these words refer to the meanings of the bits and there is no machine instruction a computer may execute which assigns meanings to bits.
Factually speaking, programming a computer does not make a new machine.
The facts used by the courts to rule that software is patentable are incomplete.
The facts used by the courts to rule that software is patentable are incorrect.
Courts should hire their own experts to advise them on how computers actually work because they have not got a complete and correct picture from the parties in past litigations.
The conclusion that software being a mathematical computation pursuant to a mathematical algorithm does not imply that everything is mathematics.
Do you see in your list of conclusions some opportunity for a party in litigation to raise an argument against software patents? Do you see a difference between the legal explanation of how software functionality is produced in WMS Gaming and the set of fact you have just drawn? Can you see how far things may go when someone opens this Pandora box?
Your answer to these questions should be your motivation for due diligence. I am betting that based on your own understanding of the facts there is enough opportunity to argue for a change in the law to justify the effort of due diligence. If this isn't the case I have lost my bet, and this article isn't for you.
On the other hand, if I won my bet you have learned something about the 'software is mathematics' argument. You now know that the argument has a factual basis. The individual facts stand on their own. They may be used in any way a party in litigation wants to. The party may, if they so choose, make arguments against software patents without raising the issue of whether software is mathematics. Due diligence is about understanding the range of possibilities. You need the complete and correct set of facts and to understand the many ways they may be argued. It does not help to jump to the conclusion that software is not mathematics and dismiss the whole argument on this basis. A world of possibilities would then escape you.
No bending of things out of shape is required to show that software is mathematics. It is sufficient to collect the facts, which depart from the legal view of computers, and put them together. Then the conclusion that software is mathematics naturally arises. If you are willing to credit me some honesty with the research, you may find a large number of these facts in my articles. The outline presented here contains only a small selection of them. My articles have also mentioned several of the ways to argue for a change in case law on the basis of these facts without raising the issue of whether software is mathematics. Only a selection of these arguments show up in this article. If you want, you may use this information as a starting point for your due diligence.
I have provided my sources, quoting references. Everything is in the open, available for verification. If things have been bent out of shape the critics should be able to find out where and why in the material I have presented. If you read the comments on the article “A Simpler Explanation of Why Software Is Mathematics” you will find that nobody has disputed the evidence I have presented. In this same article I have claimed that the legal theory of how functionality is produced by means of software is factually erroneous. In the ensuing comments nobody has challenged this claim, not even after I pointed to the absence of such challenges. My conclusion is that nobody stands for the factual correctness of cases like WMS Gaming because nobody can. These cases are not factually correct, and I have provided factual evidence that they are not.
There is a wide array of expertise on Groklaw. There are members of all professions, including a lot of hardware engineers, software programmers and lawyers. There are mathematicians too. PHDs and years of experience abound here. We have made a habit of checking all articles on 'software is mathematics' in MembersOnly mode prior to publication to verify that they contain no factual errors. The argument has been refined over the years based in part on input from Groklaw readers. Judging from the comments we have received on the article “A Simpler Explanation of Why Software Is Mathematics,” the argument can withstand this kind of public scrutiny without tough unanswered questions being raised. The remaining objection which is left standing is distrust based on an a priori assumption that software cannot be mathematics. Nobody points with specificity to an error in the evidence or in the inferences which are drawn from the evidence. The objection is directed to the tenor of the argument as a whole on the basis that, as the objection goes, the conclusion can't be right.
The point of due diligence is that if you have something serious at stake, distrust is not good enough. If I am wrong, you need to know where and how so you can answer an opposing argument in court. If you are wrong and your distrust is unwarranted, you need to find this out and adapt your business strategy accordingly. You need to verify the facts. You need to know if and how they can be used to argue against software patents, including whether they may be used in ways others than the ones I suggested.
Due diligence should also cover what happens when the experts step in. The objection that software can't be mathematics is often supported by personal conceptions about software, computers and mathematics. How would they stand when scrutinized by an expert more knowledgeable than the originator of these conceptions? Would they be confirmed or would the expert find them in error? Complete due diligence requires an answer to this question.
When you verified my list of facts from the outline of the argument, did you find that your list matched mine? If not, please ask yourself, is it conceivable that some expert more knowledgeable than you are will be able to prove some or all of those statements you have stricken? I say that experts can prove all of them and many more which are material and are not listed here. Complete due diligence requires you to explore this possibility.
For example, if we bring the theory of how computers work which is set forth in WMS Gaming to an engineer who actually designs CPUs, what would he say? Would he agree that the court is right? I say that this theory is considered nonsense outside of patent law circles because modern digital computers don't work like this. I am talking about the facts the courts have used to draw the legal conclusion. This technical explanation of the electrical effect of a program on a computer is wrong, and an engineer who designs CPUs will easily point to the errors.
In addition to being incorrect, the theory of how computers work set forth in WMS Gaming is also incomplete. It doesn't mention the role of symbols and meanings in the ability of a computer to solve real world problems. Also, not all software is compiled into instructions to be executed by the CPU. If you talk to an expert in the implementation of programming languages he will tell you that there are ways to program a computer without compiling the source code into machine instructions. Several of them are published in computer science literature. Some instructions will be executed, but they are not implementing the procedure which is being recited in the patent. These instructions implement some other procedure which is part of the programming language implementation. This is why a theory of software patents which presumes that the instructions executed always match the method recited in the claim is not considering all the possible ways of programming a computer.
There are a number of areas in mathematics and computer science where experts in these fields were concerned with questions which are relevant to the patentability of software. Let me mention these:
In the theory of computation researchers are concerned with the study of the mathematical concept of computation. They study questions such as “what is a mathematical algorithm?” and “are mathematical computations limited to numbers or do they involve other types of information?”
In mathematical logic and the associated field of
metamathematics researchers are concerned with the mathematical study of mathematics itself. They are concerned with questions like what is the mathematical language, what is its syntax, its semantics and its logic.
In formal language theory researchers are studying text as strings of symbols. Mathematical algorithms for manipulating text arise in this discipline.
In semantics of programming languages researchers are concerned of how to define mathematically the meanings of programs written in programming languages.
Information about the stored program architecture, the
instruction cycle and the instruction set architecture of computers is also relevant.
The existence of these areas of research is an objective fact. It can be verified by obtaining the names of the authors and reading the text they have published. It can then be verified that these researchers have written on topics which are of interest to the law. You will find a selection of these authors named and quoted in my articles. Their publications can be found in the reference section of the articles.
At this point I would suggest that you ask yourself these two questions:
Are the results from expert research published in this literature considered in the precedents about the patentability of software?
Are the expert literature and case law telling the same story about how computers and software work?
The answer to these two questions is also an objective fact. The verification procedure is that you get the publications from the experts and the relevant case law and you compare. I was able to find a brief reference to recursive functions in Paine Webber v. Merrill Lynch but besides this mention I have found no reference to the results of expert research in case law about the patentability of software. I have also found that the two stories diverge greatly.
You may find the evidence for these facts in the article “A Simpler Explanation of Why Software Is Mathematics”. Or if you find yourself unable to trust my analysis, you may verify these facts by bringing experts who know the contents of this literature with someone skilled in the law in the same room for a brainstorming session. If you belong to an organization which has such experts on its payroll, this due diligence should be easily feasible. Otherwise you may have to hire some external help.
There is a little pitfall you must beware of. You specifically need someone who knows the research which has been made on the questions which are of interest to the law. This part of mathematics is very different from the mathematics everyone has learned in high school. It is also very different from calculus, differential equations and linear algebra which are part of the traditional engineering curriculum. This means you can't use just any mathematical expertise. You have to make sure you have someone with the right mathematical expertise.
