decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Saturday, October 13 2012 @ 08:34 PM EDT

What Does "Software Is Mathematics" Mean? - Part 1

Software Is Manipulation of Symbols

by PolR
This article is licensed under a Creative Commons License.
[Article as PDF.]

You probably have heard computer professionals say that software is mathematics. You've certainly read it on Groklaw more than once. But is it true? What does that statement mean? I want to show you, first, why it's true, and I will also answer some typical criticisms. My purpose, however, is to suggest a way to develop a test for when a patent involving software is or is not patent-eligible, now that the Federal Circuit has granted an en banc review of CLS Bank International v. Alice Corporation. The questions the court would like answered are:

a. What test should the court adopt to determine whether a computer-implemented invention is a patent ineligible "abstract idea"; and when, if ever, does the presence of a computer in a claim lend patent eligibility to an otherwise patent-ineligible idea?

b. In assessing patent eligibility under 35 U.S.C. § 101 of a computer-implemented invention, should it matter whether the invention is claimed as a method, system, or storage medium; and should such claims at times be considered equivalent for § 101 purposes?

I suggest that a test based on manipulations of symbols would work. I'd like to explain why I think this might be the right place to draw the line.

Mathematics is a language1. Software is mathematics because, according to the principles of computation theory, the execution of the software is always a mathematical computation according to a mathematical algorithm. That is, the execution of a computer program is the computer making utterances in mathematical language.

Some people think the sentence "software is mathematics" means software is described by mathematics, and then they say that everything could be described by mathematics. In that sense, they say, everything would be mathematics. If we push that logic to its conclusion nothing would be patentable, because mathematics is not supposed to be patentable subject matter. They say this is an absurd result contrary to law.

This is not what we mean when we say software is mathematics. If we want, we can describe software with mathematics. Sometimes we do. This is not the reason we say software is mathematics. We say the execution of the software is the utterance in mathematical language as opposed to the meaning of the utterance. An utterance is mathematics. The meaning of the utterance is described by mathematics. This is one important difference between these two phrases as I hope to now show you.2 This point is related to the distinction between three types of mathematical entities: formulas, algorithms and computations.

I'll show you that using E=mc2.

The Overview

The famous equation E=mc2 is a mathematical formula. It is text written with mathematical symbols in mathematical language. This is an utterance in mathematical language. It is analogous to what we call a (declarative) sentence in English grammar. This formula is mathematics.

The meaning of this formula is a law of nature, actually a law of physics. It is a statement relating the mass of an object at rest with how much energy there is in this object. The energy of the object and its mass are described by the utterance in the language of mathematics. The object, its mass and its energy, are not mathematics. They are described by mathematics because they are what the formula means.

The formula implies a procedure to compute the energy when the mass is known. Here it is:

  1. Multiply the speed of light c by itself to obtain its square c2.

  2. Multiply the mass m by the value of c2 obtained in step 1.

  3. The result of step 2 is the energy E.

This kind of procedure is known in mathematics as an algorithm. The formula is not the algorithm. This procedure is the algorithm. Someone with sufficient skills in mathematics will know the algorithm simply by looking at the formula. This is why it is often sufficient to state a formula when we want to state an algorithm.

This algorithm is a procedure equivalent to making a logical deduction. Suppose we know the mass, how can we know the energy? We should be able to deduce it from the relationship stated by the formula. The algorithm is how we proceed with this deduction. When we use an algorithm to solve a problem we actually use a form of logic.3 Algorithms too are part of the language of mathematics.

The task of carrying out the algorithm is called a computation. When carrying out the algorithm with pencil and paper we have to write mathematical symbols, mostly digits representing numbers but also other symbols such as the decimal point. These writings too are utterances in mathematical language. In the example, the meaning of the utterances are numbers representing the speed of light, its square, the mass and the energy of an object. Carrying out the algorithm is mathematics because it is making these utterances.

But what if we use a machine? We may use a digital device such as a pocket calculator or a computer to carry out the calculation. Then the symbols are no longer marks of pencil on paper. They are bits in some digital electronics circuit. This too is utterances in mathematical language, but now the machine and not the human is making the utterances. According to the mathematical principles underlying the stored program architecture the execution of all computer programs is the execution of a mathematical algorithm, therefore this execution is a mathematical computation. This is what "software is mathematics" means.4

This was an overview of the key ideas. Let's now elaborate.

Mathematics Is a Language

Some people, I am sure, will wonder what I mean when I say mathematics is a language. For them mathematics is about mathematical subject matter like numbers, geometric figures or abstract set theory.5 This view is correct but mathematics is more than this. Serious mathematical work requires to write symbols on paper or bits in a computer. The linguistic aspect is unavoidable. On the other hand these symbols are pointless without their mathematical meanings. This is really like the two sides of the same coin. One cannot exist without the other. In this sense mathematics is a language even though mathematics is also the study of mathematical subject matter.

There is also the issue of foundations. There is a branch of mathematics called mathematical logic. This is where mathematicians define the foundations of their discipline. What is a mathematical formula? What is a theorem? What are the criteria of logic that must be met for a mathematical proof to be valid? These are some of the foundational questions answered by mathematical logic. There is also a branch of mathematics called the theory of computation. This is actually a subbranch of mathematical logic. This is where mathematicians define what is an algorithm and what is a computation according to an algorithm. If you go read these definitions in textbooks from competent authors you will find they are all elements of the language of mathematics. The definitions expressly refer to the symbols, their arrangement in syntax and their semantics. All of mathematics ultimately rely on these foundations. In this sense, mathematics is indeed a language.

Symbols Are Abstract Ideas

Languages are written with symbols, typically letters, digits and punctuation marks. Mathematical language adds to this list various mathematical symbols.

There is a difference between the symbols and their physical representations. Think of letters for example. We could say letters are marks of ink on paper but we would be wrong. If we use a pencil they are marks of lead on paper. Or when you use a computer they are arrangements of pixels on the screen. If you walk down a city street you may see on buildings neon signs and carvings in stone. Symbols are abstract ideas. We can recognize them when we see their physical representations. But still, the symbols are not the representations.

Bits are symbols. Like letters they can be represented multiple ways. In pathways between transistors they are voltages. In main memory they are electrical charges stored in capacitors. On hard disks they are magnetic moments. On some optical disks they are cavities in the surface. There are many other forms bits can take. Like letters, bits are abstract ideas.

Symbols Need Not Be Watched by Humans to Have Meanings

Some people expect symbols to be something visible to humans. This view is too strict. Symbols need not be visible to the human eye to carry their meanings.6 While bits are not normally visible they may be indirectly observed by a programmer using debugging tools if he wishes so. Then the programmer may read them and understand their meanings.

An extreme example are the cuneiform tablets from the ancient Mesopotamian civilizations. Thousands of these tablets were buried in the sands of the Middle-East for centuries, unknown to all men living during this period. The ancient languages were forgotten. But still, archaeologists were able to find the tablets and decipher them. What happened to their meanings in all these years where no live human either knew the language or was even aware that there were tablets buried there? The meanings didn't disappear. They were patiently waiting for the archaeologists.

Something similar happens to Groklaw comments. After they are typed and the commenter clicks on the "submit" button, a series of electronic adventures begins. The bits are sent over the Internet and must go through countless communication wires and equipments before reaching the Groklaw database in some data center. Then the comments are stored in a database kept on magnetic storage. When a reader clicks on the link to display the comment, more electronic adventures occur as the comment is transfered across the Internet from the Groklaw database to the user's screen. The comments are unobserved when they are stored in the database and they are unobserved when they travel across the Internet. But, when they reach destination, the comments still have their meanings.

Computations Don't Process Electrons, Computations Process Symbols

Let me tell you some fundamentals of digital electronic and the underlying principles of mathematics. I hope this will clarify the difference between hardware and symbols.

Bits are from a two-symbol alphabet, written as 0 and 1. The relevant branch of mathematics is boolean algebra which is a part of logic. The bits stand for truth values, 0 stands for false and 1 stands for true. Boolean algebra also recognizes three operators, and, or and not, which could be applied to truth values. These operators correspond to the ordinary operations of logic of the same name.

Let me describe some algorithms for each boolean operators.

The and operator accepts two arguments. It is true when both arguments are true. It is false otherwise. The corresponding algorithm is:

  • Read two symbols as input.

  • If both symbols are 1 then the answer is 1.

  • Otherwise the answer is 0.

The or operator also accepts two arguments. It is true when either or both arguments are true. It is false otherwise. The corresponding algorithm is:

  • Read two symbols as input.

  • If both symbols are 0 then the answer is 0.

  • Otherwise the answer is 1.

The not operator reverses the truth value of its sole argument. The corresponding algorithm is:

  • Read one symbol as input.

  • If the symbol is 1 then the answer is 0.

  • Otherwise the answer is 1.

There are many more operations permitted in boolean algebra. They are all computed by combination of the three elementary operators. Everything in boolean logic can be done by assembling multiple instances of these three simple algorithms into a bigger algorithm.

Please look at these algorithms attentively. You will see that they are all operations on the symbols alone. They can be executed without referring to their meanings. All that is needed is to identify whether the symbols are 1 or 0 and act accordingly. There is no need to decide whether they correspond to any truth value. This is typical of all mathematical algorithms. Mathematicians have defined their criteria for what is a mathematical algorithm as opposed to some other kind of procedure. This observation is a consequence of some of these criteria.7

Boolean operators may be implemented by means of digital electronics precisely because there is no need to refer to the meanings of the bits. If electronic signals are treated as representation of symbols the activity of the circuit is the mirror image of the algorithms.

For example, let's assume an engineer decides that a voltage of 0V means the bit 0 and a voltage of 0.5V means the bit 1. He also decides he will not use other voltages. He can build circuits called logic gates which correspond to the boolean operators.

The AND gate implements the boolean and operator:

  • The circuit takes two voltages as input on two incoming wires and produces one voltage as output on one outgoing wire.

  • If both incoming voltages are 0.5V the outgoing voltage is 0.5V.

  • Otherwise the outgoing voltage is 0V.

The OR gate implements the boolean or operator:

  • The circuit takes two voltages as input on two incoming wires and produces one voltage as output on one outgoing wire.

  • If both incoming voltages are 0V the outgoing voltage is 0V.

  • Otherwise the outgoing voltage is 0.5V.

The NOT gate implements the boolean not operator:

  • The circuit takes one voltage as input on one incoming wire and produces one voltage as output on one outgoing wire.

  • If the incoming voltage is 0.5V the outgoing voltage is 0V.

  • Otherwise the outgoing voltage is 0.5V.

Please take the time to check that the operations on the voltages are indeed the mirror image of the algorithms. When voltages are interpreted as bits as decided by the engineer, the action of the circuit is to carry out operations of boolean logic. More complex algorithms may be implemented by assembling multiple logic gates in a more complex circuit. This is one of the principles of digital electronics. Circuits manipulate symbols by manipulating their physical representations as voltages.

Now ask yourself, what happens if the engineer reverses the convention? What happens if he decides that 0V means 1 instead of 0? Of course this implies that 0.5V would mean 0 instead of 1. Would the circuits still be the mirror image of the algorithms? The answer is "yes", except that the AND gate is now computing the or operator while the OR gate now computes the and operator. The NOT gate still computes the not operator. In short, the AND and OR gates have swapped their roles. Please look again at the gates and see for yourself.

What does this mean? It means the bits are not the voltages. One cannot tell which algorithm is computed by a circuit just by looking at what the circuit does to the voltages. The same circuit will implement two different algorithms depending on how the voltages are interpreted as symbols.

As I said before, bits are symbols. They are abstract ideas. They can be represented by any voltages an engineer may chose. The pair 0V and 0.5V is a common industry standard but other standards may exist. The pair 0V and 0.35V is another common one. Bits may also be represented by something which are not voltages. In main memory they are electric charges in capacitors.8

Some people think a computation is the electronic process, the transistor activity manipulating electricity which occurs inside the circuit. They are wrong. A computation is about processing bits. It is about the symbols. It is not about voltages or electrons.

Bits Must Be Organized Into Syntax

One cannot randomly put together a bunch of symbols and expect them to mean something. Symbols must be grouped together according to rules of syntax. Something like E=mc2 is a mathematical formula while =e)Ru+ is not. This is partly because E=mc2 complies with the rules of mathematical syntax while =e)Ru+ does not.

Similarly bits in a computer must be organized according to rules of syntax. Often they are grouped to represent numbers. There are several ways to do this.

One possibility is called "unsigned integers". Under this convention bits represent natural numbers 0, 1, 2, 3 … up to the maximum quantity of numbers permitted by the available quantity of bits. If we have 8 bits at our disposal unsigned numbers are in the range 0 to 255. Another possibility is called "2s-complement9 format" which allows negative numbers. The same 8 bits in 2s-complement format can represent numbers in the range -128 to 127.

Notice how the two syntaxes represent different ranges of numbers. This means that sometimes, the same series of bits may mean two different numbers depending on the choice of syntax. For example 11111111 means 255 as an unsigned integer and it means -1 in 2s-complement format. It is not possible to tell which it is just by examining the bits because they are the same. To tell the difference we must know which syntax the one who wrote the bits has used.

This is a key idea. The one who writes the bits gets to choose the syntax. If you don't know which one he chose you can't read the bits.

This is another reason why data is not the same thing as its electrical representation. Let's suppose an engineer aligns 8 voltages in a row and tells you which voltage corresponds to a 0 or a 1. He asks you to read the number. Can you read it? You can't unless the engineer tells you his choice of syntax. Just knowing the voltages and the bits they stand for isn't good enough.

This ambiguity may also apply to circuits. For example there are circuits called adders for adding binary numbers. The relevant algorithms for addition are such that the same adder which adds unsigned numbers also correctly adds numbers in 2s-complement format.10 For example when this circuit adds 10000000+01111111 resulting into 11111111 it could mean either 128+127=255 in unsigned integer format or -128+127=-1 in 2s-complement format. It is not possible to know which it is from an examination of the bits and the circuit structure alone. We must also know which convention on the representation of numbers is used.

The circuit is identical. The bits are identical. The meaning is different because the syntax is different. The user of the circuit gets to choose whether he adds unsigned integers or 2s-complement numbers because the same circuit does both. The computation is not the electronic activity of the circuit. It is an abstract idea involving symbols and a choice of syntax to represent meanings.

There are lots of rules of syntax for various types of data. There are some for floating point numbers. They are needed when the computation requires fractions. Other rules are encoding for characters such as ASCII or Unicode. There are standards for very complex data like video and audio files. Many of these rules are international standards. Other are defined by the authors of particular programs for internal use.

Data Has Meaning

Symbols have meanings. In the case of boolean algebra, 0 means false and 1 means true. In the case of arithmetic series of bits mean numbers. Sometimes the numbers encode letters and the text has meanings like legal briefs or contracts. The text has meaning. Sometimes the bits are stored in files or databases. This data also has meaning.

Mathematical symbols may have simultaneously two types of meanings. There is the abstract mathematical meaning, like truth values and numbers. Then there may be some non mathematical interpretation given to the abstract mathematical meaning. For example a number may be a count of apples in the grocery inventory, or it may be the speed of a rocket in flight.

Like symbols and syntax, the meanings of the symbols is not a physical component of the circuit doing the computation. When you use a computer to maintain the inventory of a grocery there are bits representing information about lemons and other food. These bits are descriptions of the food; they are not the food. The lemons are not electronic components of the machine.

Data and Computations Are Contents

To sum up what we have seen so far, we have symbolic language defined by a series of syntactical and semantical relationships as set forth below:

  1. There is some physical substrate, often elements of a physical computer, which represents symbols.

  2. There are conventions of syntax on how the symbols are organized.

  3. When symbols have the proper syntax, they have meaning in mathematics, such as boolean or numerical values.

  4. The mathematical values may be used, alone or in combination, to represent other entities such as letter of the alphabet or the complex structures found in files and databases such as video and database records.

  5. Then the mathematical language may also be given some non mathematical interpretations.

All these relationships are defined by various conventions. There is the convention which identifies which voltage represents which bit. There are conventions on the format of numbers. There are conventions on how to use numbers to represent letters, digits and other characters. There are conventions on file formats and data structures. There are many more conventions. This is not an exhaustive list.

These conventions come from diverse sources. Some of these conventions are defined by the computer engineers who have designed the computer components. Others are industry standards. Some more are part of culture, like the meaning of English words we find in textual information. Other conventions are defined by the programmer when he defines the data used by its program. Regardless of the source all these conventions are intangible. They are neither physical elements of circuitry nor physical phenomenons. They are elements of knowledge which are required to be able to read and write the data.

Where do algorithms fit in this picture? Algorithms are independent from hardware and meanings. They lie in the middle; they are about the symbols and their syntax.

Algorithms, in the mathematicians' sense of the word, are methods for manipulating the symbols. A computation is the manipulation carried out according to the algorithm. Symbols are not something physical like voltages as the discussion of boolean gates and voltages has shown. Computations and algorithms are not hardware processes because they manipulate the symbols and not the voltages.

An algorithm must be machine executable. It must be the type of procedure which could be executed by logic gates which may react only to voltages representing symbols.11 No interpretation of the meanings is possible. The gates can't do that. The meanings of the symbols is understandable to someone who can read the bits but it is not used by the computing circuit when carrying out a computation. Therefore an algorithm doesn't depend on the meanings to be executed.

If algorithms are neither a hardware process nor an operation on meaning, what are they? Algorithms are manipulations of the uninterpreted symbols and their syntactic arrangement.

Please think of a legal brief. You need a physical stack of paper with marks of inks. Or you need electrons for your electronic file. But the brief is not a stack of paper with marks of inks and it is not electrons in a file. Like a legal brief, algorithms and computations are not physical entities. They are contents. They require a physical representation but still remain different from the representation.

But unlike a legal brief, algorithms are limited to the symbols and their syntax. They must be executable without having to interpret the semantics. In this respect, algorithms are more like a printing press which is able to print the letters without referring to their meanings. But unlike the printing press, algorithms are not machines, because they are not physical entities.

How Computer Hardware Carries Out Computations

With this background information, we may ask how does a computer carries out a computation? We have already seen part of the explanation in the discussion of the boolean gates. When the voltages are used to represent bits the gates implement boolean operators. If we give an algorithm to a competent engineer, he will find an arrangement of gates that will carry out the corresponding computation. When the engineer etches the gates on an integrated circuit he makes a dedicated circuit because this circuit can carry out only the computation for which it has been designed. But a general purpose computer can carry out any computation as required by the software. Making a general purpose computer requires something more.

Mathematicians have discovered a special category of algorithms called universal algorithms. Several universal algorithms are known.12 Each of these algorithms can compute every function which is computable provide we give them a corresponding program as input. In effect, any universal algorithm can emulate the behavior of every other algorithm. This is why we call them universal. This is like a glorified Swiss army knife but for computing. A single algorithm suffices to serve the purposes of all of them.

Dedicated circuits for universal algorithms may be implemented with boolean gates. This circuit can only compute the universal algorithm for which it has been designed. This is exactly like a dedicated circuit for any other algorithm but with one difference. The chosen algorithm is universal. This makes the circuit a programmable general purpose computer. The reason is that the universal algorithm will carry out any computation when it receives the corresponding program as input. The task of writing such a program and giving it to the computer is called "programming the computer".

Please note that a program is data. It is made of bits. This is like giving a video as input to a video player. In both cases we are giving data as input to an algorithm.

Most modern general purpose computers are built according to a common engineering pattern called the stored program computer architecture. These computers are dedicated to carrying out a universal algorithm called the instruction cycle.13 A program for this algorithm is a series of instructions. Each instruction corresponds to an operation which must be performed whenever the instruction is executed.

A computer has many parts. Two of them stand out as the most important in the execution of instructions.14 The first one is main memory. This component is exactly what its name implies. It is a container for information, a place where bits can be read and written. The instructions must be stored in the computer main memory before they can be executed. The other important computer component is called the processor, or the CPU.15 This component too is what its name implies. It reads the instructions from memory and carries out the corresponding operations.

The instruction cycle works as follows:16

  1. The CPU reads an instruction from main memory.

  2. The CPU decodes the bits of the instruction.

  3. The CPU executes the operation corresponding to the bits of the instruction.

  4. If required, the CPU writes the result of the instruction in main memory.

  5. The CPU finds out the location in main memory where the next instruction is located.

  6. The CPU goes back to step 1 for the next iteration of the cycle.

As you can see, the instruction cycle executes the instructions one after another in a sequential manner. In substance the instruction cycle is a recipe to "read the instructions and do as they say".17

This is an algorithm in the sense mathematicians give to this word. It is a series of steps for performing a task by manipulating symbols which meet the requirements mathematicians have defined for a procedure to be a mathematical algorithm. We say software is mathematics because the execution of all computer programs is the execution of a universal mathematical algorithm. In this sense software is making utterances in the language of mathematics.

Please recall the objection mentioned at the beginning of this article, that some people think we say software is described by mathematics. You should now see more precisely why we are not arguing that. The instruction cycle is not a description of the computer. It is what the computer does. We are arguing that software is mathematics because what the computer does is a mathematical computation according to a mathematical algorithm.

Sources

The mathematical model of computation corresponding to the stored program computer is called the RASP or Random Access Stored Program. It has been documented in chapter 1 of The Design and Analysis of Computer Algorithms [Aho 1974, see references, below]. This is how mathematicians and theoretical computer scientists state in the mathematical language the algorithm implemented as the instruction cycle.

The RASP is a universal version of a family of algorithms called register machines. This family is described in Models of Computation and Formal Languages [Taylor 1998, see references, below] chapter 5.

I have explored how the algorithm of the instruction cycle can be stated in the language of lambda-calculus. This statement is more detailed because it covers a wider range of features commonly found in modern computers. This file can be downloaded here (PDF).

Some people think that the presence of random elements brings an algorithm outside the scope of mathematics. This is incorrect. Mathematics, including probability theory, is able to handle randomness. In particular there are in mathematics random mathematical processes called stochastic processes. Physicists routinely use probability theory to state some of the laws of quantum mechanics. In computer science a normal deterministic algorithm can be transformed into a randomized algorithm if a source of random numbers is treated as an input from which data is read. Then the procedure of a probabilistic algorithm is not different from a deterministic one, the difference is in the input. This is precisely how operating systems such as Linux treat hardware number generators. From a software perspective they are systems files from which random data is read.

The semantics of some programming languages have been defined mathematically. The text of program implemented in one of these languages must be the description of a mathematical algorithm as defined by the language semantics. An example of such a language is Standard ML. The definition of the language is found in The Definition of Standard ML (Revised) [Milner 1997, see references, below]. See Commentary on Standard ML [Milner 1991, see references, below] for a commentary and in Concurrent Programming in ML [Reppy 2007, see references below] for the mathematical definition of I/O and concurrent programming libraries. Another example of a programming language with a mathematically defined semantics is Coq. This language is documented in Interactive Theorem Proving and Program Development, Coq'Art: The Calculus of Inductive Constructions [Bertot 2004, see references below].

More mathematical references may be found in previous articles published on Groklaw:

A Remark on Algorithms and Abstract Ideas

Mathematical algorithms are a subcategory of procedures for manipulating symbols. The instruction cycle is also a procedure for manipulating symbols.

Some legally skilled people say that all procedures for manipulating symbols are abstract ideas. This is interesting. The question of whether a particular computation is a mathematical algorithm may be superfluous. As soon as we show a procedure is manipulating symbols we don't need to determine whether this manipulation is mathematical. We already have proof that it is an abstract idea.

I think this circumstance may be used to develop a test for when a patent involving software is patent eligible. Case law from the Federal Circuit suggests that the legal difficulty is to find a workable definition of some key terms.

The Federal Circuit had problems agreeing on what the term "mathematical algorithm" means. From in re Warmerdam:

One notion that emerged and has been invoked in the computer related cases is that a patent cannot be obtained for a "mathematical algorithm." See In re Schrader,, 22 F.3d 290, 30 USPQ2d 1455 (Fed.Cir.1994) and cases discussed therein. That rule is generally applied through a two-step protocol known as the Freeman-Walter-Abele test, developed by our predecessor court, the first step of which is to determine whether a mathematical algorithm is recited directly or indirectly in the claim, and the second step of which is to determine whether the claimed invention as a whole is no more than the algorithm itself. See Schrader, 22 F.3d at 292, 30 USPQ2d at 1457.

The difficulty is that there is no clear agreement as to what is a "mathematical algorithm", which makes rather dicey the determination of whether the claim as a whole is no more than that. See Schrader, 22 F.3d at 292 n. 5, 30 USPQ2d at 1457 n. 5, and the dissent thereto.

Trying to define what is an abstract idea doesn't seem to be working either. From MySpace, Inc. v. GraphOn Corp.:

When it comes to explaining what is to be understood by "abstract ideas" in terms that are something less than abstract, courts have been less successful. The effort has become particularly problematic in recent times when applied to that class of claimed inventions loosely described as business method patents. If indeterminacy of the law governing patents was a problem in the past, it surely is becoming an even greater problem now, as the current cases attest.

In an attempt to explain what an abstract idea is (or is not) we tried the "machine or transformation" formula—the Supreme Court was not impressed. Bilski, 130 S.Ct. at 3226-27. We have since acknowledged that the concept lacks of a concrete definition: "this court also will not presume to define `abstract' beyond the recognition that this disqualifying characteristic should exhibit itself so manifestly as to override the broad statutory categories of eligible subject matter… ." Research Corp. Techs., Inc. v. Microsoft Corp., 627 F.3d 859, 868 (Fed.Cir.2010).

Our opinions spend page after page revisiting our cases and those of the Supreme Court, and still we continue to disagree vigorously over what is or is not patentable subject matter. See, e.g., Dealertrack, Inc. v. Huber, ___ F.3d ___ (Fed. Cir.2012) (Plager, J., dissenting-in-part); Classen Immunotherapies, Inc. v. Biogen IDEC, 659 F.3d 1057 (Fed.Cir.2011) (Moore, J., dissenting); Ass'n for Molecular Pathology, 653 F.3d 1329 (Fed.Cir. 2011) (concurring opinion by Moore, J., dissenting opinion by Bryson, J.); see also In re Ferguson, 558 F.3d 1359 (Fed.Cir. 2009) (Newman, J., concurring).

This effort to descriptively cabin § 101 jurisprudence is reminiscent of the oenologists trying to describe a new wine. They have an abundance of adjectives—earthy, fruity, grassy, nutty, tart, woody, to name just a few—but picking and choosing in a given circumstance which ones apply and in what combination depends less on the assumed content of the words than on the taste of the tongue pronouncing them.

I think the concept of manipulation of symbols is well-defined. It should be possible to develop a workable legal test on this basis. An obvious possibility is to modify the Freeman-Walter-Abele test which has been rejected in Warmerdam, testing for manipulations of symbols instead of algorithms. Another possibility is to make a literal application of Mayo v. Prometheus "to transform an unpatentable law of nature into a patent-eligible application of such a law, one must do more than simply state the law of nature while adding the words 'apply it'." This alternative test would compare the utility of the claim taken as a whole with the utility of the manipulations of symbols taken alone, adding the words "apply it". There must be a substantial difference between the two, otherwise the claim is not patent-eligible according to Mayo.

I think the courts should be able to apply this kind of test because the fundamental problem with the definition of terms is solved.

In connection with the en banc review by the Federal Circuit of CLS Bank International v. Alice Corporation, let's think now about symbols in that context. It goes without saying that symbols must have a physical representation. This doesn't make a procedure to manipulate symbols something less abstract. The digital equivalent of processes for pushing a pencil and making marks of lead on paper should not be patent eligible.

Arguing that allowing such to be patented is not patenting mathematics in the abstract is a charade. There is no way of carrying out a mathematical computation without actually writing the symbols. Therefore it should not matter whether the manipulation of symbols is claimed as a method, a system, a storage medium or any other physical device. It should not be patent eligible in any and all of these scenarios.

The meanings given to the symbols should make no difference. I suggest this as the line:

As long as the procedure manipulates symbols their meanings will never confer patent eligibility.
I have a riddle that may help convince you why this is a desirable result.

Please take a pocket calculator. Now use it to compute 12+26. The result should be 38. Now give some non mathematical meanings to the numbers, say they are counts of apples. Use the calculator to compute 12 apples + 26 apples. The result should be 38 apples. Do you see a difference in the calculator circuit? Here is the riddle. What kind of non mathematical meanings must be given to the numbers to make a patent-eligible difference in the calculator circuit?

This is the kind of question the Federal Circuit is asking about computers. When I read case law about section 101 patentable subject matter, I see the court analyze the meanings of the bits to determine whether the invention is abstract. But at the same I see the court working from a legal theory where a software patent is actually a hardware invention. Can't they see this is a contradiction? This is the point of the riddle. The meanings of the bits is not a hardware component of the machine and it is not influencing the steps of the computation.

Activities like input, output and mental steps of reading, writing and thinking about the meaning of symbols should not confer patent eligibility to a manipulation of symbols. These steps are just more manipulations of symbols.

Data gathering where nothing more is achieved but obtaining the data which will be manipulated should not confer patent eligibility to a manipulation of symbols.

_____________

References

[Aho 1974] Aho, Alfred V., Hopcroft, John E, and Ullman, Jeffrey D.. The Design and Analysis of Computer Algorithms, Addison-Wesley Publishing Company 1974

[Ben-Ari 2001] Ben-Ari, Mordechai, Mathematical Logic for Computer Science, Second Edition, Springer-Verlag, 2001

[Bertot 2004] Bertot, Yves, Castéran, Pierre, Interactive Theorem Proving and Program Development, Coq'Art: The Calculus of Inductive Constructions, Springer, 2004

[Devlin 2000] Devlin, Keith, The Language of Mathematics, Making the Invisible Visible, W.H. Freeman, Henry Holt and Company, 2000

[Epstein 1989] Epstein, Richard L., Carnielli, Walter A., Computability Computable Functions, Logic and the Foundations of Mathematics, Wadsworth & Brooks/Cole, 1989

[Hamacher 2002] Hamacher, V. Carl, Vranesic, Zvonko G., Zaky. Safwat G., Computer organization, Fifth Edition, McGraw-Hill Inc. 2002

[Kleene 1967] Kleene, Stephen Cole, Mathematical Logic, John Wiley & Sons, Inc. New York, 1967. I use the 2002 reprint from Dover Publications.

[Kluge 2005] Kluge, Werner, Abstract Computing Machines, A Lambda Calculus Perspective, Springer-Verlag Berlin Heidelberg 2005

[Milner 1991] Milner, Robin, Tofte, Mads, Commentary on Standard ML , The MIT Press, 1991.

[Milner 1997] Milner, Robin, Tofte, Mads, Harper, Robert, MacQueen, David, The Definition of Standard ML (Revised) , The MIT Press, 1997

[Reppy 2007] Reppy, John H., Concurrent Programming in ML, Cambridge University Press, First published 1999, Digitally printed version (with corrections) 2007.

[Taylor 1998] Taylor, R. Gregory, Models of Computation and Formal Languages, Oxford University Press, 1998

Footnotes

1 There are actually several mathematical languages because each branch of mathematics has its own requirements for notation. But for simplicity let's say it is a language.

2 There is more to mathematics than utterances in mathematical language. Mathematical entities like numbers and geometrical figures are also mathematics. The article mentions the utterances in mathematical language because this is the part of mathematics the sentence "software is mathematics" refers to.

Some people sometimes try to draw a contradiction between described by mathematics and is mathematics. They argue that when something is described by mathematics it is not mathematics because the things being described is not the description. There is no such contradiction. It is possible and common to describe entities like numbers, geometric figures and algorithms with mathematical formulas. For example a circle centered at the origin with a radius of unit 1 is described by the equation x2+y2=1. Therefore mathematical entities can both be mathematics and be described by mathematics.

Similar situations occur outside of mathematics. For example it is possible to describe the syntax of an English sentence using English. Then the sentence is both English and described by English.

3 This is a fact of mathematics. One mathematically precise statement of the connection between algorithms and logical deductions is called the Curry-Howard correspondence. Another mathematically precise statement of this connection is the resolution algorithm used in mathematical logic. This discovery had led to the development of logic programming. For the more familiar family of imperative programming languages, the mathematically precise statement of this connection is called Hoare logic.

4 There is more to software than program execution. But according to patent law, the aspect of software which is patented is the program execution. We say "software is mathematics" as a slogan to remind people that the aspect of software which is patented is entirely a mathematical computation.

5 I am sure our mathematician friends will have something to say about what is mathematical subject matter. I chose to keep this discussion simple. If you need to explore the question I suggest you read [Devlin 2000], especially the prologue. This book discusses what is mathematics in a language easily understandable by non mathematicians.

6 Bits are copyrightable whether or not they are watched by humans.

7 See [Kleene 1967] p. 223, where Stephen Kleene defines the notion of algorithm as mathematicians see it. You will find several requirements. Among them there is this one:

In performing the steps we have only to follow the instructions mechanically, like robots; no insight or ingenuity or intervention is required of us.

If the meanings of the symbols are ambiguous it is impossible to execute the algorithm in this manner. Resolving the ambiguity is an intervention that requires insight or ingenuity. This requirement would not be met. On the other hand if the symbols are unambiguous, for purposes of executing an algorithm mechanically, like robots, their meanings are superfluous. Why should we need the step of noticing the symbol means true when we already know it is 1? There is no reason. The algorithm works just as well when we act on the symbols alone like these boolean algorithms do.

This logic applies to all algorithms in the sense mathematicians give to this word. This point has been noticed by Richard Epstein and Walter Carnielli. See [Epstein 1989] p. 70, where they describe a series of models of computations used to define classes of algorithms:

What all of these formalizations have in common is that they are all purely syntactical despite the often anthropomorphic descriptions. They are methods for pushing symbols around.

8 This assumes the memory technology is DRAM. Other technologies may represent bits differently.

9 This is pronounced two's complement.

10 See [Hamacher 2002] page 368.

11 I am referring to the criteria mathematicians have defined for a procedure to be an algorithm in the sense of mathematics. See footnote 7 above. While mathematicians have not stated their criteria in these terms they are equivalent in practice with requiring that algorithms be machine executable manipulation of symbols. In the case of digital electronics this means the algorithm must be computable by a circuit made of logic gates.

12 A theoretically important universal algorithm is called the universal Turing machine. Other universal algorithms are used in practice for programming purposes. Instruction cycles are the preferred universal algorithm for imperative programming which is the most widely used programming paradigm. In logic programming algorithms such as SLD resolution are used to resolve problems described in logical terms using Horn clauses. See Mathematical Logic for Computer Science, Second Edition [Ben-Ari 2001] chapter 7 and 8 for a complete discussion. In functional programming various implementations of normal order β-reduction are used. See [Kluge 2005] for a book dedicated to several implementations of normal order β-reduction. It should be noted that normal order β-reduction is a universal algorithm which modifies its program as the computation progresses. It cannot be assumed the program is always unchanged by the computation as is usually (but not always) the norm in imperative programming.

13 Other universal algorithms exist as indicated in footnote 12. However the instruction cycle is the chosen one when building a stored program computer.

14 Main memory is the equivalent of a pad of paper in a pencil and paper calculation. The CPU is the electronic equivalent of whoever handles the pencil. We may view the stored program computer as an automated version of a human carrying out a pencil and paper calculation, but much faster.

Other components of stored program computers are the peripheral devices for input and output and communication components called buses to interconnect everything and also other components like power supply, casing etc.

15 The acronym CPU stands for Central Processing Unit.

16 This is a simplified explanation for readability. Here is how [Hamacher 2002] p. 43 describes the hardware implementation of an instruction cycle. (emphasis in the original)

Let us consider how this program is executed. The processor contains a register called the program counter (PC) which holds the address of the instruction to be executed next. To begin executing a program, the address of its first instruction (i in our example) must be placed into the PC. Then, the processor control circuits use the information in the PC to fetch and execute instructions, one at a time, in the order of increasing addresses. This is called straight-line sequencing. During the execution of each instruction, the PC is incremented by 4 to point to the next instruction. Thus, after the Move instruction at location i + 8 is executed the PC contains the value i + 12 which is the address of the first instruction of the next program segment.

Executing a given instruction is a two-phase procedure. In the first phase, called instruction fetch, the instruction is fetched from the memory location whose address is in the PC. This instruction is placed in the instruction register (IR) of the processor. At the start of the second phase, called instruction execute, the instruction in IR is examined to determine which operation to be performed. The specified operation is then performed by the processor. This often involve fetching operands from the memory or from processor registers, performing an arithmetic or logic operation, and storing the result in the destination location. At some point during this two-phase procedure, the contents of the PC are advanced to point at the next instruction. When the execute phase of an instruction is completed, the PC contains the address of the next instruction, and a new instruction fetch phase can begin.

17 Every stored program computer contains a hardware implementation of this algorithm. This is not the only possible way to implement it. Program like a virtual machine for a Python bytecode interpreter are software implementations of the instruction cycle. There are also universal algorithms which are not instruction cycles. These algorithms too may be implemented in software. Ultimately the software universal algorithms are executed by the hardware instruction cycle.

Programs intended to be given as input to software implementations of some universal algorithm are not instructions for the hardware instruction cycle. This is a point to remember because some people think all software are instructions for the CPU. Sometimes they build legal arguments based on this idea. These arguments are often wrong because they don't take into account all the possible forms software can take.


  


What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR | 758 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
corrections thread
Authored by: designerfx on Saturday, October 13 2012 @ 08:59 PM EDT
post corrections here

[ Reply to This | # ]

off topic thread
Authored by: designerfx on Saturday, October 13 2012 @ 08:59 PM EDT
off topic comments here

[ Reply to This | # ]

Congratulations PolR - Very well written
Authored by: Anonymous on Saturday, October 13 2012 @ 09:18 PM EDT

Will you be filing this as a brief? Because you really should, the judges
need to see this.

Wayne
http://madhatter.ca

[ Reply to This | # ]

Newspicks Discussion Here
Authored by: red floyd on Saturday, October 13 2012 @ 09:32 PM EDT
Please put the title of the newpick as your title.

---
I am not merely a "consumer" or a "taxpayer". I am a *CITIZEN* of the United
States of America.

[ Reply to This | # ]

COMES here
Authored by: red floyd on Saturday, October 13 2012 @ 09:34 PM EDT
Please place your transcriptions here.

Those of you who have been doing it know the drill. Anyone else interested can
click the Comes v. MS link at the top of the page.

---
I am not merely a "consumer" or a "taxpayer". I am a *CITIZEN* of the United
States of America.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: rsteinmetz70112 on Saturday, October 13 2012 @ 10:41 PM EDT
It does not matter what mathematicians, software engineers, or programmers
define as "mathematics" it only matters what Judges or Legislators
define as "mathematics".

Additionally I think but cannot be sure that the case law generally refers to
"algorithms" or "equations" as legally defined, not
"mathematics" in general.

Finally this whole line of reasoning seems to be advancing a technical(or
theological) argument against a point of public policy which in our society
should be decided by the legislative branch of government.

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Saturday, October 13 2012 @ 11:23 PM EDT
An algorithm must be machine executable. It must be the type of procedure which could be executed by logic gates which may react only to voltages representing symbols

This is your problem. I doubt any computer has ever existed that consisted only of logic gates. I know modern computers have resistors, capacitors, oscillators, fans, mechanical storage devices, environmental sensors, keyboards, mice, monitors, Ethernet ports, etc. All of these can and do impact calculations.

For example, one of the first things you learn about Turing machines is that one Turing machine can emulate two separate Turing machines. The problem is, those Turing machines are assumed to stay in lock step. Two separate CPUs with two separate oscillators will never stay in lock step, so you need a random factor for one CPU to emulate two. Furthermore, the proof that one Turing machine is as good as two assumes that there is no data corruption. In the real world, this isn't true either.

If the goal is to argue that software that runs on real hardware is mathematics, you're going to have to abandon Turing machines and Turing computable and the definition of algorithm you learned in CS.

I believe that a Turing machine with an oracle that provides a random symbol on demand might be enough to model real hardware that doesn't interact with people. I don't believe you can argue that software that interacts with people is mathematics without arguing that people are mathematics. I could be wrong, it might be possible to claim people are just another source of entropy.

To switch to a Turing machine with a random oracle, I think you need to change your definition of algorithm to something like (I should do this in TeX, but I'm way too rusty:)
Let S be a finite set of symbols. Let X(S) be the set of all finite strings of symbols from S. An algorithm F is a map F:X(S) x X(S) -> [0,1] such that for every a in X(S) Fa:X(s) -> [0,1] with Fa(x) = F(a,x) is a probability distribution and there exists a Turing computable function H: X(S) x X(S) -> X(S) and a probability distribution G:X(S) -> [0,1] such that for every a,b in X(S) there is a c in X(s) with G(c) = F(a,b) and H(c,a) = b.

Sorry about the run on, but math doesn't lend itself to periods. At least it doesn't without typesetting. What all that is trying to say is that there is a Turing machine that with the right random input, it does what you want. The point of F is that the first argument is the input, the second is the output and the results is the probability of getting the given output from the given input. If you require the range of F to be {0, 1} then you should get the standard definition of algorithm.

Anything that satisfies the above definition of algorithm is clearly math. The hard part is to show that the above yields anything interesting. It's clearly more than Turing computable because it can generate random numbers. I think this will give you enough, but someone needs to check to make sure this definition of algorithm is inclusive enough to eliminate most software patents.

None of this is really new or hard. I would be stunned if there wasn't some mention of this somewhere in the literature. It's possible the hard work has already been done. Someone who can search the appropriate journals should do so. I think the keywords Turing, random and oracle will get some good hits if you can eliminate things related to the database company.

[ Reply to This | # ]

Legal Writing 101 - you didn't attend
Authored by: Anonymous on Saturday, October 13 2012 @ 11:29 PM EDT
There are good ideas in here, but most lawyers will not pay
attention because the writing is not structured in a way
that they can follow.

1. Give an outline of your argument. This is part 1,
apparently. Why is it divided into two parts? What will be
in part 2? For that matter, what do you consider the most
important conclusion of part 1?

1a. Tell 'em what you're gonna say, then say it, then tell
'em what you said. Don't just start talking about
mathematical utterances without explaining why a lawyer
should care. And don't assume that when a reader reached
the end of the page they understood what the main conclusion
should be. Tell them again.

2. Complete your argument. Engineers often respond to a
question by giving conclusive evidence but fail to draw a
conclusion. Asked "what is the capacity of this hard drive?"
they may say, "It's a Model 1234 from IBM", which is correct
but not sufficiently helpful - sure, that's enough
information with which to obtain the desired answer (e.g.,
from Google) but if you are being asked a particular
question, give the answer to that question. Once you
identify the question you're trying to answer (maybe it's
"what is a test that judges could apply to exclude software
from patentability that would be mathematically correct"),
you can organize your writing around giving a clear answer
to that question.

3. Don't bury the lede. The paragraph where you suggest a
new test (or two) is underneath the heading "A remark on
algorithms and abstract ideas." Headings are supposed to
help the reader follow the argument, not to hide the main
idea!

4. Give examples and anticipate counterarguments. Maybe
this will be in your part two, but let's say we adopt your
test - what result do we get if the software is implemented
as a hardware circuit instead?


Long tangent related to number 4:
I think if it uses memory at all, then it is "writing
symbols" by your definition, so not patentable. Is that a
correct interpretation of your test, and if so, is that a
desirable result?
(I believe it's possible to implement a calculation
without using memory. I'd guess I/O buffers don't count,
or the result would be that almost nothing digital is
patentable even if everything is implemented in hardware.
In any case, you could implement a special-purpose
calculator in hardware (maybe analog hardware) without
buffering the I/O. Would such a piece of hardware be non-
algorithmic and therefore patentable? Example: Enigma
machine. The intended use is to manipulate symbols, but is
that what the Enigma machine itself does?)

5. Keep it simple. My tangent to number 4 probably doesn't
belong in this piece, but would be good for a follow-up.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Sunday, October 14 2012 @ 12:23 AM EDT

I agree with previous commenters that this is pure ontology. It will convince neither judges nor even programmers. Worse, it looks daunting a read; I couldn't even reach halfway through.

It would be so much easier to point out that all software is recursively definable functions, as explained in the Church-Turing thesis. Or that it can be expanded into boolean circuits. This way even the intellectually challenged would have to recognize this is mathematics. And they wouldn't even have to read anything, since not only can the above be illustrated to neophytes with Powerpoint crayons, but it's been extensively researched by illustrious mathematicians (even they might know, such as Alan Turing) since even before computers existed.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Sunday, October 14 2012 @ 01:46 AM EDT

As someone who spent a third of his long career in engineering and who has obtained an advanced degree in that field, and who has also spent two-thirds of his career in the patent field, I think I am qualified and entitled to ask:

Why is it that the arguments presented in this article sound so much like this to me?

[ Reply to This | # ]

Algorithms are mathematics, code is creative composition.
Authored by: Anonymous on Sunday, October 14 2012 @ 02:59 AM EDT
Neither is patentable.

[ Reply to This | # ]

Software is not mathematics
Authored by: Anonymous on Sunday, October 14 2012 @ 05:54 AM EDT
Software is not mathematics.

Mathematics itself is a broad discipline from pure mathematics concenred with
the logical consequences derivable from sets of axioms to applied mathematics
concerned with how the results and methods of pure mathematics can be applied to
praticcal problems.

Software can to an extent be analysed by mathematics and all software depends on
algorithms, often trivial obvious algorithms, which are a part of applied
mathematics but software itself is more than this.

There is a massive freedom in how software is structured and how it performs
functions. The design of software is critical and this design is not principally
concerned with algorithmic concerns but how to make the software easy to
understand, how to make it easy to extend and how to manage the complexity
inherent in whatever task is being performed. Software engineering is a
massively practical and creative disciplince with only occasional need for
significant mathematical skills.

A good example of the distinction is work I did medical imaging. At the time
some complex front end signal processing was performed by banks of laser trimmed
matched analog electronics. This was expensive. I derived some mathematical
relations that made it possible to achieve a similar or better result digitally
with the practical componenst available at the time. This is perhaps mathematics
but what is interesting is two years later working with another company I saw
they were using my idea to process signals but with no understanding at all of
the underlying maths. They had decided there must be a relationship between the
signals concerned and had simply measured it emprically and encoded it in look
up tables. They then implemented it in software. The real drive for the idea was
not the mathematics but the current state of electronics in terms of ADCs,
multipliers and the performance of low cost DSPs.

The point is that software is not mathematics but engineering. It is concerned
with solving practical problems and not concerned with formal logic or proofs
except as tools.

A second point is there are many routes to a solution and what drives the types
of solutions is the tehcnical and commercial environment more than the ability
of individial engineers or developers.

There is a real problem with patents especially SW patents in the US but the
problem is not because software is mathematics but because of the practical
consequences of the current system. The mathematical argument is false but in
any case has the character of relgious dogma. The exclusion of mathematics from
patentable material was surely itself based on a practical assesment of the
consequences.

[ Reply to This | # ]

Math Is Manipulation of Symbols
Authored by: Ian Al on Sunday, October 14 2012 @ 06:02 AM EDT
I read that in some of PolR's previous pieces. I was sure he would be right, but I did not really get it.

A while ago I thought of a simple demonstration of math being a manipulation of symbols. It's as easy as 1, 2, 3.

I start by counting up from zero:

zero
1
The colour, red, 1
I II
0100
The colour, green
six
.......
1000

The initial numeric value is 0 and the math algorithm is to obtain the next numeric value in the series by adding one, 1 or the colour brown.

Obviously, trying to write counting on paper forces one to use symbols. The math algorithm just becomes the manipulation of the symbols. Let's avoid all that confusing symbolic stuff by actually uttering the math. Of course, my utterances are the words in the English language that symbolise numeric values; one, two, three. four, five, six, seven, eight. (Uhm... un, deux, trois... forget it!)

It changes nothing. The stuff on paper is just another way of uttering the math. It's the same with a calculator and a computer.

Let's try PolR's suggestion of hiding the utterances of counting in a computer so that we don't see or hear it.

Let Count=0
Let Brown=1
Do Loop
Print Count
Let Count=Count plus Brown
End Loop

If I really did not want to see what was happening to my manipulation of symbols in the computer, I should not have printed out the values of Count.

There must be an exception to the rule that every processor instruction is an instruction to manipulate the symbols it loads from memory. In fact, there isn't. The only things that the processor can get from and put to memory is the binary symbols '0' and '1'. The only thing that the processor can do is execute a symbol manipulation on the symbols it gets from memory.

Even the loading and saving of symbols from and to memory is a computer version of writing and rubbing out symbols on the paper tape of Turing's hypothetical math machine.

In summary, math is the manipulation of symbols. The computer processor is only capable of manipulating symbols. Any software that is executed by a computer processor is only manipulating symbols because that is all the processor can do. Ergo, software is math.

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | # ]

Minor nit of the E=MC^2
Authored by: jesse on Sunday, October 14 2012 @ 07:10 AM EDT
<blockquote>
3. The result of step 2 is the energy E.
</blockquote>
I believe this is usually referred as the "energy equivalent E",
rather than "the energy E". But I'm not sure of the current thought on
that.

[ Reply to This | # ]

The "Software Is Mathematics" argument is counter productive.
Authored by: Anonymous on Sunday, October 14 2012 @ 09:19 AM EDT
The problem with with the "Software is Mathematics" argument
is that it is counter productive when it comes to arguing
against software patents. The reason is that patents are a
legal construct, and must therefore be countered in legal
terms, by comparing it with practice and limitation on
patentibility in other areas such as patents on hardware,
chemical and manufacturing processes, and accepted non-
patentability in other areas - eg. novels and other creative
content. The use of abstractness as a reason for non-
patentibility of software which was why software was not
patentable in the past also needs to be explained in clear
legal terms and resurrected to block patentibility of
software. The non-patentibility of scientific principles,
and the non-patentability of specifications which have
limited options, or are arbitrary and do not correspond to a
real optimum or benefit should also be emphasised.

I fear that introducing a new basis for patentability based
on the "Software is Mathematics" (which lawyers and the
public in general will not understand), will simply expand
the arugment for even wider patentability based on the fact
that because public key encryption patents have already been
granted, there is precedence for the patenting of
mathematics in certain contexts - at least that is how
lawyers will see it.

I think it is far more productive to explain things to
lawyers, law makers, and the public in terms of accepted
limits to patentability that they do understand from other
areas. For example, allowing patenting of novel plots is
absurd, so why is the analogy of this in software being
allowed. You can't patent a method of using fast
multiplication that involves looking up log tables, adding
the values and looking up anti-logs on paper, so why was
Intel granted a patent to use this on a computer. You need
to explain that for patents on alloys, you cannot be granted
a patent if you cannot show that the specific values or
ranges you are patenting are optimal in a stated way - so
for example you can't claim ownership of say steel-chrome
alloy specifications with say between 2% to 5% chrome and 1%
molybdenum just by quoting the percentages you wish to claim
- you need to identify the optimum values and explain
exactly how they are optimal. It is also not possible to
patent the use of things that have a limited number of
options - for example use of symbols, cyphers, names etc.
Why then is it possible to claim ownership for an arbitrary
range of parameters in the case of standards and protocols
required for interoperability simply by quoting a set of
parameters.

The reasons why we have patents should also be made clear in
the simplest terms - it isn't something given to us by god
or a natural right, but an artificial limited monopoly
granted by the state for the sole purpose of promoting
innovation for the benefit of the consumer/public. Ideas are
something that everyone should be able to have and
implement. The blocking and monopolization of ideas by state
decree is a very unnatural thing, and should be limited to
only those cases where a definite benefit to the public and
the consumer can be shown.

[ Reply to This | # ]

Symbolic Contexts (in support of "unwatched" symbols)
Authored by: BitOBear on Sunday, October 14 2012 @ 09:31 AM EDT
A good example of the contextual significance of symbolism is is the two oldest
(?) known scripts. Called "Linear A" and "Linear B", we are
able to translate Linear B, but Linear A remains a complete mystery.

So the symbols exist, but lacking context, they have been deprived of meaning
for us. In theory some day we will rediscover the context for those symbols and
therefore the meaning(s) and therefore the useful data still stored in Linear
A.

The thing is we have that data. It exists. We can and do manipulate it, but only
to sore it, retrieve it, stare at it, and wonder.

This means, by definition, a computer (just like a person) can acquire, control,
and transmit "real" data while maintaining zero comprehension of any
_meaning_ for that data. We know it exists and it happens every day.

Homomorphically (is that a real word) computers don't typically even
"care" about things like the signed or unsigned nature of a domain of
bits. Take two operands of eight bits and apply any of the mathematical
operators (and, not, or, add, subtract, multiply, divide, etc) you will, by
design, execute exactly the same transformation whether the one or both of the
operands are signed or unsigned. That is, the bit patterns that go in and come
out of the transformation are identical. (This is _why_ "two's
complement" was chosen to represent signed numbers in modern computers.

(ASIDE: two's complement also removes some "unfortunate" problems with
the older representations that did care... things like "negative zero"
in ones complement representations. These were removed _because_ they were
inferior mathematical representations. Computers have been, over their
developmental lifecycle, "scrubbed clean" of as much of the
mathematically problematic features as possible.)

The real implication of this whole context-deprived data processing is that any
declaration of "purpose" in program, or a patent for same, is not
material to the technology or "invention".

That is, since data doesn't have any meaning to the computer (which is
demonstrated by the fact that computers assign and require no _meaning_ to the
symbols at all).

So all of the cases of "transferring data between a client and a server for
the purposes of dividing the video stream decoding work" or whatever,
should be stripped of words like "client" "server" and all
the words after "for the purpose of". Such declarations of
"invention" read "transferring data between computers" and
nothing more. The computer doesn't know _why_ and there is no actual distinction
between "client" and "server" when it comes to moving data.
There is just the computer that has data the the computer that doesn't. An HTTP
request, for instance involves data moving from the "client" to the
"server" before the data moves the other way. The "client"
sends data to get the "server" to send data, and that data in turn
usually gets the "client" to send more data to get a
"server" to send more data in turn. The only real distinction is
"we call the thing that goes first the client" or "the server is
the one that waits in standby for another machine". Once a connection is
made things are much less clear cut than most people understand.

Those semantics really don't exist as such.

Software and so software patents are chock-a-block full of distinctions that
make no difference, particularly once you understand that the contexts imposed
for convenience in the mind of the various programmers and writers are stripped
away utterly before the computer starts pushing symbols around.

[ Reply to This | # ]

Footnote 16 and all it supports is myopic.
Authored by: BitOBear on Sunday, October 14 2012 @ 10:18 AM EDT
The contents of footnote 16 are wholly dependent on the "PC" (e.g.
Intel 8086/8088 architecture) and not computing in general. As such the six
steps outlined in the main text are false. The following is a "better"
definition of what happens in a modern computer:

(0) the computer always has a concept of "the next instruction" which
is located by a value stored in a known location, this location is usually
called "the instruction pointer".

(1) The computer reads the "next instruction" from the memory pointed
to by the instruction pointer into an electrical buffer inside the chip. This
_always_ changes the instruction pointer deterministically, advancing it
"by one instruction".

(2) The act of putting a bit pattern into that buffer electro-mechanically
activates subsections of the chip, each section of which has a fixed
electromechanical function. (The on-ness and the off-ness of the bits literally
turns parts of the CPU on or off.) These sections will be called
"domains" for a moment.

(3) Each electromechanical domain will performs a simple action such as reading
or writing from memory by a particular means (directly, through a register,
etc), doing arithmetic (add, subtract, compare, etc),

NOTE 1: One of the things that can be read or (over)written to is the
instruction pointer. Writing it will change the designated instruction.

Once all of the functional domains are finished, the processor then goes back to
step one (1).

NOTE 2: "instruction decoding" is something of a misnomer and it only
takes place on Complex Instruction Set Computer (CISC) machines. When a complex
instruction is encountered, say a "long multiply" the CPU will replay
a known series of simple instructions that are "built into" the chip.
This replay is electromechanical itself. So there is no thought, or really
actual "decoding" taking place. This is a convenience for the
architecture so that "long or hard" operations like multi-byte
"multiplication" don't have to be done "long-hand".

There is a real electrical and mechanical reason that executing one instruction
is called "turning the crank" as executing one instruction is
identical to pulling the handle on an mechanical adding machine. Indeed in the
original Babbage differential and integral engine designes there was a literal
crank and each full turn was one instruction.

For reference see http://www.retrothing.com/2006/05/curta_miniature.html which
is a primary example of a good mechanical adder. Imagine functional domains that
set the various value levers and then one domain to turn the crank. A different
instruction might not turn the main crank, but turn the clear-accumulator
(outer) crank. The selection of which crank to turn might be the lowest bit of
the instruction for example.

Computational execution of each instruction inside a computer is factually
electromechanical and functionally atomic.

== Now to Opine ==>

The real reason software should not be patentable is that using a machine
exactly how it was designed to operate (and likely already patented to operate
that very way) isn't eligible for patent _again_.

I can't patent "only sewing straight lines using a sewing machine that can
do more". Why should I be able to patent "repeatedly comparing numbers
to a known number to find a 'good' match"?

The computer is already patented. Patenting its application to a particular
purpose that it, as manufactured, is capable of doing, is not inventing
anything. It's using something.

Software can only make a computer do what it can already do by design, and what
it is already patented to do (or not) by the designer.

[ Reply to This | # ]

Polr, if auditing only the main "reply comments", then, please go back to HERE (see the link)
Authored by: Anonymous on Sunday, October 14 2012 @ 10:42 AM EDT
Polr,

If you are auditing the main "REPLY" comment strings only, then please go back to your "THANKS" string above -as there are questions and suggestions (read all posts, thank- you).

Clicky back to:
your "Thanks" link - with following "new" comments

.

[ Reply to This | # ]

Haddocks' Eyes
Authored by: sciamiko on Sunday, October 14 2012 @ 11:18 AM EDT
It's all a matter of levels of indirection. Lewis Carroll understood it well, as he wrote in Through the Looking Glass and what Alice found there (Ch 8):
"... The name of the song is called 'Haddocks' Eyes'"

"Oh, that's the name of the song, is it?" Alice said, trying to feel interested.

"No, you don't understand," the Knight said, looking a little vexed. "That's what the name is called. The name really is 'The Aged Aged Man'"

"Then I ought to have said 'That's what the song is called'?" Alice corrected herself.

"No, you shouldn't: that's quite another thing! The song is called 'Ways and Means' but that's only what it's called, you know!"

"Well, what is the song, then?" said Alice, who was by this time completely bewildered.

"I was coming to that," the Knight said. "The song really is 'A-sitting on a Gate', and the tune's my own invention."

Talking of inventions, Alice later recognises the tune as another.

s.

[ Reply to This | # ]

if you don't know
Authored by: Anonymous on Sunday, October 14 2012 @ 11:28 AM EDT
your a [redacted] lawyer
end of story

[ Reply to This | # ]

Explainations will not help
Authored by: Anonymous on Sunday, October 14 2012 @ 11:31 AM EDT
Unfortunately, the problem is not a lack of understanding (though there
certainly is that). The fundamental problem is that Rader and his clowns have
decided that software must be patentable. That is a religious position on their
part. You cannot argue it. They have decided that they are going to make sure
that software is patentable and they will make any ruling, no matter how
illogical or irrational, that is required to achieve that result.

[ Reply to This | # ]

They are all computed by combination of the three elementary operators.
Authored by: JamesK on Sunday, October 14 2012 @ 12:21 PM EDT
Actually, you can get by with two operators. NOT and either AND or OR. In
logic integrated circuits, the two most common functions are NAND (NOT AND) and
NOR (NOT OR). You can build *EVERYTHING* in logic using just one of those two
functions and nothing else.

---
The following program contains immature subject matter. Viewer discretion is
advised.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Sunday, October 14 2012 @ 12:21 PM EDT
But is it all avoidable if they include
"a system including a computer program where an input device translates
data to symbols and an output device translates the processed symbols back to
data"

Sure the computer is just doing symbol manipulation, aka math mapping from one
domain to another. But when you wrap it with an input device and output device
you get real world effect.

And that is where the patent is. Real world effect of idea space inventions.

The point then is that if it is simply adding the (+input,+output) to the
software makes it a real world machine you might as well just patent the
software as to be useful any software is going to have inputs and outputs.

[ Reply to This | # ]

is this too simple?
Authored by: Anonymous on Sunday, October 14 2012 @ 12:30 PM EDT
If the invention contains software and the software can be
written in any computer language, then that aspect of the
invention is protected by Copyright law only.

[ Reply to This | # ]

  • is this too simple? - Authored by: Anonymous on Monday, October 15 2012 @ 07:31 AM EDT
  • yes, too simple - Authored by: Anonymous on Monday, October 15 2012 @ 03:26 PM EDT
    • yes, too simple - Authored by: Anonymous on Tuesday, October 16 2012 @ 09:14 AM EDT
Bits may also be represented by something which are not voltages
Authored by: JamesK on Sunday, October 14 2012 @ 12:35 PM EDT
There was (is?) a logic display at the Ontario Science Centre in Toronto. In
that display, the bits were balls falling down clear tubes to the logic
function. You could see what happened when one or two balls entered an AND or
OR gate. There were more complex functions too.


---
The following program contains immature subject matter. Viewer discretion is
advised.

[ Reply to This | # ]

Software can be expressed in many languages
Authored by: Anonymous on Sunday, October 14 2012 @ 12:39 PM EDT
Mathematics is a language as are FORTRAN, C, French, German, English, etc.
Mathematics is a precise means of expressing certain concepts.

The fact that something can be expressed in a language doesn't make that thing a
language.

If being able to express an idea in a language makes it unpatentable, then there
can be no patents. Language is how we communicate.

The real problem is absurdly broad claims that lack novelty, such as the LED PWM
patent.

[ Reply to This | # ]

PJ please read - PolR's essays deserve permalinks
Authored by: Anonymous on Sunday, October 14 2012 @ 01:01 PM EDT
Hi - I've never gotten an actual Groklaw account, but have
been a daily visitor since very near the beginning.

Anyway - *please* consider adding a permanent link to a
collection of all of PolR's excellent essays. I don't see
anything like that in the sidebar currently.

These concepts really need to be made clear to our decision-
makers, and I have never seen anyone lay out the issues with
clarity and precision anywhere approaching our worthy
contributor. We ought to make it as easy as possible to
locate these writings.

David Bruce

[ Reply to This | # ]

How to Best Frame Your Argument, part I
Authored by: Anonymous on Sunday, October 14 2012 @ 01:21 PM EDT
Both the program and the data are linguistically
encoded information. No lawyer or jurist could make stand
the negation of this statement in courts.

Inside any executing computer, programs input information
commonly referenced as data, but look at what is actually
happening. The distinction between program and data is
arbitrary and recursively layered like pancake stacks. In
reality, there is no absolute and enforceable difference
between program and data. One's current perspective and
motivation informs one's use of natural language, but
experts understand that there is no theoretical difference,
just linguistic shorthand. Any program is merely data to
another program encoded as hardware circuits, firmware
controllers, or software statements.

Show me any U.S. jurist so incompetent on the bench as to
adjudicate for the patenting of data. Oh! Crap! There is
the DC Court of Appeals turning the 21st Century into
the Dark Ages.

U.S. Copyright law governs intellectual property (IP) rights
for data, not U.S. Patent law. Let them patent hardware.
Firmware depends on the context within the system
hardware, as to patentability in my humble opinion.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Teran on Sunday, October 14 2012 @ 01:37 PM EDT
Where is the mathematical proof?

Words, words, words.

Lazy. Not fit for peer review.

[ Reply to This | # ]

I can "run" software by hand
Authored by: OpenSourceFTW on Sunday, October 14 2012 @ 02:18 PM EDT
Supposed I am given a program to "run", with the instructions on a
sheet of paper (memory), a stack of blank paper (to use as registers), a pencil
(data paths perhaps), a metronome to represent the clock, and some switches and
indicator lights (I/O). Why can't it be done?

I don't need a computer to run a program. I could conceivably "run" it
by hand, decided what the instructions meant, and copying data from the
"memory" to my "registers," performing ADD/SUB/Logic gate
operations on paper, flipping switches, and reading indicator lights.

There is nothing inherently special about software, it is simply a type of
mathematics that involves Boolean algebra and a truly massive number of
operations. That is why no one will bother doing it by hand, but that doesn't
mean it couldn't theoretically be done.

If most programs only involved a few operations, no one would venture to say
they were patentable. It is only because they involve
millions/billions/trillions operations that this argument seemingly (but
incorrectly) is said to have merit.

Note: you might say my setup could be patented (perhaps a special station with
the switches and lights arranged in a certain fashion), but you would only be
patenting the HARDWARE, not the software.

[ Reply to This | # ]

Since everything can be described by mathematics, it really doesn't matter.
Authored by: Anonymous on Sunday, October 14 2012 @ 02:52 PM EDT
Thanks for sharing your ideas. I believe we had as previous discussion
regarding software - computation theory - mathematics as they related to patents
a while back.

I continue to make the same basic affirmation - mathematics does not process
anything. But I do believe there is space for patenting software even while
adhering to the idea that software is mathematics. I will _try_ to share my
idea of why, and then I will be suggesting a simple way to reform software
pattens in court by suggesting that presumptions be clarified and/or changed.

Background:

Software/mathematics is a language and so is English.

They are the means by which ideas can be communicated. A system which
understands processor instructions used in software and interprets those
instructions by performing their natural operations (within the context of the
symbols establishing their domain).

The algorithm example you created for e=mc^2 is an example of a mathematical
formula translated into one possible English version understood by even people
not familiar with mathematical equations. Those instructions could
theoretically be followed and some meaning full answer may emerge. (within the
context of the symbols established by the domain encompassing the English
language).

Analysis:

So how can algorithms and patents may relate? I'm going to simplify so that the
complexity of the multi-layer modeling of modern software and computer hardware
don't interfere with my analogy.

The simplest computer and requisite hardware for my example is an abacus. My
software is going to be instructions describing bead manipulations on the
abacus, however it's written on a sheet of paper. The operator of the abacus
takes responsibility for loading (reading) and interpreting the instructions, as
well as changing the state (by means of moving beads) of our computer.

At this point we have a complete system, all of which can be described by
computations theory as well as mathematics. I may even be able to patent the
instructions I've written on the paper, but only if I could create a presumption
that the algorithm would be implemented on the hardware. Of course the main
issue about creating any such presumption is that it would rely on the
presumption of the presence of the operator and more importantly his or her
volition to process my algorithm on the machine.

It's this "where the tire meets the road" point where we need to
examine the patentability of software.

So what about those presumption as they apply to modern computers and software?
Well the operator related functions of loading(reading) has been automated into
the CPU and chipset. The only dependency is whether or not the algorithm is
available to the CPU (wither the software is on disk). However there are still
operator related functional requisites that need to be addressed.

The main issue and the one I believe is interesting to examine, is the issue
about the volition of the operator to process the algorithms available. When
Samsung sells a smartphone it is delivered in the off state. All the software
loaded onto the device might be there but it's undeniably inaccessible because
of the machine state requisite that executing those algorithms require. There
is no useful work or processing that may be performed. Patent infringement is
impossible at this point.

When the owner of the shiny smartphone plugs the phone in and turns it on, is
there an issue where the volition of operator comes into play? Does the
operator not provide a genesis of all the volitions that caused the machine to
start processing the available software? The same can be said about starting
the execution of a program.

Obviously software can load other software and execute it according to the
design or idea the programer may have in mind. Does providing such instructions
in software constitute evidence of some volition of the software maker? Perhaps
it does. But how does that volition compare to that of the operator who turns
the device on?

Conclusion:

Most cases of software patent infringement simply presumes that software is
executed simply because it exists within the memory systems of a device.
Furthermore, the volition of the software maker and the device operator are
often enjoined as though they where one. But the underlying point of where
"the rubber meets the road" is the basis for the validity of software
patents, the software instructions being performed by the hardware is the point
where the validity of software patents is based. It also happens to be the area
where there is no established legal precedent and everything seems to be
presumed.

So obviously one way of reforming software patents is to establish/change these
presumptions. Perhaps create some tests or assign some weight to operator
participation to the model. Certainly by the establishment of a judicial
presumption – that the operator who turns the device on is the genesis of all
operator volition contained in the device – manufacturers of the systems can
enjoy the protections of not willfully infringing any patents. Such a
presumption may even be enough to exempt them completely. The establishment of
such a presumption would obviously would make software patents worthless
although they may still technically be valid.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Sunday, October 14 2012 @ 03:29 PM EDT

My apologies, I did not read very far. The abstract and first sentence presented enough issues that I stopped there.

First, if mathematics is a language, then what does language mean? As languages may be described via mathematical notation, and we know as an absolute that natural languages cannot be described formally, and mathematics require formal definitions, mathematics is a formal language described mathematically. That seems to be a loop. Or, looking at it another way, if mathematics is a language, what is the grammar? What are the words and sentences that are provably in and out of syntax?

Mathematics is... well, I can't finish that sentence, but the definition would have to account for axioms and extensions built on logic and proof, just as a definition of science would have to include observation and hypotheses.

I think a more promising way to look at software is to understand that all machine code is comprised of instructions which come from a finite set of possible instructions. Enumerate the steps and use concatenation and one may convert any program into a giant number and each program will be uniquely numbered. The number is an integer and thus an element of a countably infinite set. Therefore, all programs exist, just as any number we can think of exists. Unfortunately for that argument, non-determinism, concurrency and parallelism issues interfere with the pure, single-threaded algorithm. Some problems are NP. Sometimes choices have to be made which are optimal for one set of inputs and an anti-pattern for another set. We can also easily imagine a program that writes a future step as it's executing.

The other issue that I noted at the outset is that software, hardware, and firmware are all, in a very real sense, interchangeable. Any program could be replicated with hardware. And indeed, for a dedicated embedded device, it may be better to avoid software. Our power grid is at risk to cyberattack because control devices have an os and software in order to facilitate remote monitoring and — very important — control. Note, I'm not second guessing the engineers by mentioning the point. The inconvenience of replacing hardware with software is that then the device does only one thing and in one way. Still, if hardware and software are interchangeable, it makes problematic the assertion that software patents are bad, but hardware patents acceptable.

In Mathematics where one "gets" is based on the assumptions, i.e., where one starts. The patent system has been fitfully adapted from the steam age into the Information Age. 20 years seems too long. Innovation is perverted from progress to a search for the patentable. Patents don't always work out as well for the inventors as advertised. Mutual Assured Destruction is as fragile a preventative against destructive strife as were the alliances of 1910 Europe. I appreciate the effort you put into writing this and I apologize that by disengaging after reading the first sentence and footnote I may have missed the convincing argument that transcends my comments on semantics. I'm thinking that liberating software from the patent system isn't enough and to focus on that implicitly endorses our current patent system. We must choose a different starting point.

[ Reply to This | # ]

Breadth of exclusion is the problem.
Authored by: Anonymous on Sunday, October 14 2012 @ 04:21 PM EDT
Mathematics and abstract thought exceptions to patentability
in the United States are constructs of the courts.

The reasoning for the exception appears to be patents on
abstract thought and mathematics grant an exclusive right
that is much to broad.

Making the breadth of the patent the determining factor
seems much more useful.

The Church-Turing thesis roughly states that anything that
is achievable can be described with a Turing machine, or the
Lambda calculus.

So from the perspective of scope of a patent grant any
general result in software or mathematics should be denied
patent protection because it is much too general.

Any patent that will not allow someone skilled in the art to
read the patent and create the machine should be denied
patentability because it is not clearly interpretable and
much too general.

Any application of a general result to a specific problem
should be denied patentability because the utility of the
general case is already well understood, and nothing
interesting is added.

So for a test I would propose the questions how broad is the
applicability of this patent? If the answer is not
obviously a small narrow field there is a problem. If the
patent may not be worked around by a small modification I
suggest that the patent is too broad.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: ikh on Sunday, October 14 2012 @ 06:36 PM EDT
An excellent article as usual from PoIR.

First some clarifications of some of the usual mis-understands that are littered
through out the comments.

A computer is just the memory and the processor. These two elemnts are what make
a Turing machine. Keybord, mouse, network and all other input or output devices
are referd to as peripherals. They work by writing to or reading from particular
memory locations and then signaling the processor that data has been read or
written. Peripherals form a part of a computer sytem but they are not part of
the computer its self. They are not part of the computational system that is a
realisation of a Universal Turing Machine.

We don't have to argue that the source code of a computer program is Maths or
abstract though becase the courts have already clearly stated this to be the
case and Patent Lawyers have not found a weakness that they feel they can argue
against with source code.

This is why, Patent Lawyers argue that loading a program into a computer makes a
new patentable machine. This is why PoIR concentrated on the representation of
software in a running computer.

Software, whether in source code or when running on a computer is an algebra. We
can mathematically prove a one for one mapping between source code and the
running representation of the program on a processor. As PoIR has said, modern
dgital computers use bits ( short for binary digits ) as the representation. But
nothing in the maths of computation requires this. It is just the most practical
method of realising a computer.

There are three different mathematical systems that define the axioms, and rules
for computers. PoIR favours Llambda Calculus, I am more familar with Turing
Machines, and others may prefer the theory of recursive functions. It does not
matter which is used because they have been mathematically proven to be
equivelent to each other. They all produce machines with identical properties.

I need to say a little about proof here. Proof is used in different ways in
different subjects. E.g. in Law, in a civil case in the U.S. and U.K. legal
proof is
about evaluating the evidence on the "Balance of Probabilities". In a
criminal case the evidence is evaluated against the criteria of "beyond a
Reasonable doubt". In science, ( Physics, Chemistry, Biology ) The standard
of evidence is even higher. When General Relativity replaced Newtonian Gravity
there was just one piece of evidence that Physics could not explain. The orbit
of the planet Mercury. General Relativity also made a predection of
gravitational lensing. General Relativity produce results that predicted both of
these and matched all the results from Newtonian gravity and therefore it
replace Newtonian gravity as the model we use for gravity.

Mathematical proofis a very different beast. It is an absolute. If I prove
something mathematically, there, by definition, will never be a counter example.
Andrew Wiles in 1995 proved Fermats last Therom. It says that you can not have
an equation of a^n + b^n = c^n for any integer n where n is greater than 2.
Where a^n means raising a to the power n. In all of known history, there has
never been a well fomed mathematical proof where evidence can produce a counter
example.

Now, you can not mathematically prove a law of physics. In fact, laws of physics
or any other science, are really models that are the most predictive that we
have been able to create so far. To be able to prove something mathematically
you have to be doing Maths.

So what can we say mathematically about software or computer programs. Well, we
can write the specification of a computer program in maths. We can then implemnt
the specification in the programming language of your choice. Lets say I
implement it in C++. We can then mathermatically prove that the implementation
is exactly equivilent to the specification at the source code level. We can then
implement the specification in BASIC and prove that it is equivelent. We can do
the same thing with assembler language. We can also prove that the assembler
language is one for one equivelent to the binary representation of the running
program.

If software was not maths then these proofs would not be possible.

Software is mathematics. Sadly, there are highly trained engineers, Physisits,
Applied Mathematicians out there that have not had the training in the correct
areas of Mathematics and Computer Science, that do not understand this
relationship. This does not change the truth. As anyone with a reasonable
mathematical training will tell you, there are many mathematical results that
are counter-intuitive and go completely against common sense. Common sense has
nothing to do with mathematical results.

Let me give a very simple example of unintutive maths ( other may come up with
better examples. ) Divison by zero in Maths is an illegal operation. By common
sense, a lot of people would expect division by zero would produce infinity.
Instead, it is absolutely forbidden in Maths. Why? It is simple. If you allow
division by zero you can prove a therom to be true, and you can prove the same
therom to be false. Let me make that a little more concrete. Most of us, from
school remember Pythagaros therom. The square of the hypotenuse is equal to the
sum of the squares of the other tw sides. There are literally hundreds of proofs
of this therom. After all a therom means that there is at least one mathematical
proof. If we allow division by zero then it becomes possible to prove the therom
wrong! This breaks mathematics. That is why the operation is forbidden.

Software is Mathematics, not because I say so, but because it is an algebra.
Because software make theroms. Because I can make proofs. It is irrelevant if I
use maths formulas and equations in software. They are not important. Diamond v
Diehr says that using equations in an invention does not stop that being a
patentable invention. But software itself can never be patentable nor can
software alone ever infringe a patent.

This leads on to the questions asked by the Court of Appeals.

a. What test should the court adopt to determine whether a computer-implemented
invention is a patent ineligible "abstract idea"; and when, if ever,
does the presence of a computer in a claim lend patent eligibility to an
otherwise patent-ineligible idea?

Its simple. In Diamond v Diehr a computer controlled the process of curing
rubber. Ignore how the computer does what it does but not what it does. Alow the
computer to be substituted by a human to do what the computer does. Do you still
have an invention? In Diamond V Diehr, if the compiuter were replaced by a human
making the calculations, you still have a new process for curring rubber. That
is reasonably patentable. Does it patent the computer program? No! I could use
exactly the same program in a simulator of rubber curing and it should not
infringe.The computer program is not protected. The mathematical equation used
to decide how long to cure the rubber is not protected. Only the whole process
of curring rubber is protected.

The second questions asked by the Court of Appeals was:

b. In assessing patent eligibility under 35 U.S.C. § 101 of a
computer-implemented invention, should it matter whether the invention is
claimed as a method, system, or storage medium; and should such claims at times
be considered equivalent for § 101 purposes?

Absolutely not. The Supreme Court has ruled time and time again that the
formulation of the claim, the words used should be irrelivent. All such claims
should be equivelent.

/ikh

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: jjon on Sunday, October 14 2012 @ 09:49 PM EDT
The article briefly mentioned printing presses, and that got me thinking: Computer hardware should be treated like printing presses. I.e.:

You can patent an improved printing press; you should be able to patent improved computer hardware.

You can copyright (but not patent) a book that's printed with a printing press; you should be able to copyright (but not patent) a computer program that runs on a computer.

You can't patent "a printing press configured to print a specific type of book", since loading the printing plates into the press clearly doesn't make a different machine for patent purposes. So you shouldn't be able to patent "a computer configured to run a specific algorithm", since it clearly doesn't make a different machine.

Question: Given the current patent law, as used for software patents, why CAN'T I patent "a printing press configured to print <some new book>"? Is this a way to show the absurdity of the current law?

[ Reply to This | # ]

First, stop using the word "Software"
Authored by: webster on Monday, October 15 2012 @ 12:16 AM EDT
.

The computer, since it is electrical, can basically only recognize current and
no current. It can therefore only read numbers, binary numbers that reflect its
binary nature --on and off. There is an on and off switch on the outside but
multitudes more on the inside. They go to things like disk drives, speakers,
ports, peripherals, accessories, etc.

To make it all work one has to give the computer instructions, but the computer
can only read the numbers. Numbers that correspond to hardware in the computer
and set circuits to do work are translated to words that can be used to
manipulate the computer. That becomes programming language. You have to use
these words in a specified way and you can't make anything up unless you define
it to the computer with words it already knows or the right binary number.

So instructing a computer is specialized "language" which underneath
has to be numbers and math.

A computer can do everything you tell it to do. A patent on speech is patenting
an abstraction. Expressions of ideas and writings enjoy copyright protection.

Imagine if there were patents on poems of love.
Could I send thee messages on the wings of a dove?

.

[ Reply to This | # ]

In many cases
Authored by: cricketjeff on Monday, October 15 2012 @ 07:29 AM EDT
The "software is maths" argument is actually too deep, the patents
should have been rejected simply because they did not describe anything novel.
Computers are general purpose machines, they are supposed to be able to do
anything physically within their compass, I can't patent undoing crosshead
screws with a flathead screwdriver that happens to fit. If you can find a way to
make a computer produce toffee-apples without adding anything to its normal
peripherals, that would be patentable, but do sort or process data, that is what
it was designed to do!

---
There is nothing in life that doesn't look better after a good cup of tea.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Monday, October 15 2012 @ 11:08 AM EDT

If the universe is a simulated reality, the question of patentability via this test becomes muddled.

Background: It is possible that the universe is merely a simulation generated by some extremely complex computing force. Our being simulated is difficult to test, but is nonetheless a possibility which cannot be ruled out, and which has implications for the question "what is math". By the reasoning in this article, all products of the simulation are expressions of some mathematical framework. In what cases are patents valid for objects which, in the context of the simulation are non-mathematical, but from outside the simulation are math?

You might argue that descriptions within the simulation may hold to objects without the simulation, and therefore they are described by mathematics rather than deduced. It is possible, however, that descriptions within the simulation are meaningless when applied outside of the simulation. If the laws of physics significantly differ outside the simulation vis-a-vis our own, one might conclude that our description describes a purely mathematical object with no "real world" equivalent.

We might find, rather, that our patents hold only within the confines of our own universe. This makes some sense, but begs the question: what if the description provided by the patent holds outside of our own universe? Does the fact that the idea was generated within the simulation somehow invalidate its patentability without? Perhaps the patent should hold everywhere it is valid. But how do you distinguish between the patent being used within the model, and the patent being used by some outside agent who interacts with the model?

It seems that one possible test would be whether the description generates the object, or merely describes it. That is, despite the fact that an object is generated by some mathematical process, manipulation of that object by subsequent mathematical process may still be patentable. If the object, and therefore its manipulation, hold no meaning outside of the mathematical structure, then its patentability is moot outside of said structure. Within the simulation, however, the manipulation could be just as "real" as the operation of a cotton gin, and may therefore be patentable.

So if one piece of software defines a symbol, and another manipulates it, where does this leave us? And how do we define where one algorithm ends and another begins? For that matter, do our own patents hold in our own simulations when those simulations become sufficiently complex that the patent might be implemented within?

[ Reply to This | # ]

What's the Point?
Authored by: Anonymous on Monday, October 15 2012 @ 11:33 AM EDT

This rolls around every few months. What's the point?

Mathematics is used as the building blocks in a lot of different fields
(including music).

That doesn't make all these fields "mathematics".

[ Reply to This | # ]

If you get people to believe this...
Authored by: Anonymous on Monday, October 15 2012 @ 02:54 PM EDT
...you might end up getting mathematics patented.

In fact it looks like that has already happened for "hard" math.

Does not compute: court says only hard math is patentable

[ Reply to This | # ]

to be math, the manipulation rules must be unambiguous
Authored by: Anonymous on Monday, October 15 2012 @ 05:01 PM EDT
A procedure can manipulate symbols without being mathematics. To be
mathematics, the manipulations have to be selected from a set that is defined
clearly enough that they can be carried out identically by different people
following the same instructions. The rules must be unambiguous.

Law and art can involve manipulation of abstract symbols, but they're not
math.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Maot on Monday, October 15 2012 @ 07:55 PM EDT
If software is maths, is maths software? Is software just a proper subset of
maths? I believe not.

I'm not disagreeing with the view presented here I just believe there are other,
equally valid views. Some may be based on intangibles but are not invalid views.
All viewpoints should be able to co-exist.

Aside from trying to fit a taxonomy in order to apply a silly law, or for the
purposes of pure computer science or pure math research, who normally cares?
Yes, using the perspective that software is just maths can be helpful in some
circumstances, in others, such a view does not help.

I've made a living as a software engineer (or teacher of software engineering)
now for many years.

I am not, never have been and never will consider myself a mathematician. I know
plenty of great mathematicians who would never consider themselves programmers
or software engineers. Can they write software - some of them! Can I do math?
Sure; however, why bother, that's what my computer is good at :-)

So from this simple perspective, software is not math, it's a different
discipline done by different people, with different aptitudes. Math is done by
mathematicians, software is done by software engineers - or if you're unlucky,
programmers :-D

I'm not arguing that all software can't inherently be represented as maths,
broken down into it's sub-components, which is the view presented in this
article.

Sure, it can - however, to the layman and also the the professional, this
shouldn't matter (at least not often).

Nor should it matter to the lawyer, like I say, in this context we're discussing
a silly law that can be interpreted many ways by many experts.

Next: what does software do? Does all software solve mathematical problems? Not
as far as the user is concerned and often, not as far as the programmer is
concerned. We build abstractions on the shoulder of giants. With the
abstractions sufficiently far removed from the maths, it really is no longer
maths. The sum is greater than the parts.

That's the value we add.

Are we just big bags of minerals and water? No.

When we build a machine with a consciousness (and it's a matter of when, not if,
in my opinion) is that maths? No, of course not, no more than you or I are just
maths.

How we define and draw the line between software and maths is always going to be
open to interpretation - a grey area, however, I believe something becomes more
than just maths and becomes software.

[ Reply to This | # ]

Very simple test is all that is needed.
Authored by: Anonymous on Monday, October 15 2012 @ 09:26 PM EDT
If you can copyright it, you can't patent it.


The problem we face is that legal boundaries and definitions are fluid and can
be pushed. And where those boundaries and definitions are consistently pushed in
only one direction over time they tend to move.

It isn't enough to have a clear logical argument that everyone agrees makes
sense. That clear argument will be twisted into a pretzel over time by the
pressure. Even clear simple language like "Software as such cannot be
patented" can be twisted over time to mean the exact opposite. What hope
then does your more complicated quasi-philosphical argument have of withstanding
such pressure?

The ONLY way to win a long term victory here is to create a boundary that CANNOT
move because it will be pushed from both sides. All it takes to do this is the
bedding in of a very simple principle. Things which can be copyrighted cannot be
patented.

If this is established in law then courts cannot give in to the pressure to
patent software without immediately invalidating copyright on that same type of
software.
People are going to want to push on both sides of that boundary. People will in
fact be reluctant to push that boundary at all as in doing so they may just hurt
themselves.

That is the only way to win here - to turn the enemies strength against himself.

[ Reply to This | # ]

I still say this is the wrong argument
Authored by: celtic_hackr on Monday, October 15 2012 @ 10:06 PM EDT
To me it's obvious.

Software is to computers what a perforated roll of paper is to a player piano.
The persons who invented the player piano and the computer were entitled to
patent protection. The people who make the "sheet music
program"/"computer program" which the the player piano/computer
plays are entitled to Copyright Protection.

End of story.

You can't patent a work of art. That's all a computer program is. A work of
multimedia, interactive art, normally reduced to an electronic digital
representation. But can just as easily be reduced to a perforated roll of paper
fed into a specific reading device. Or a stack of perforated cardstock.

[ Reply to This | # ]

A musical variation
Authored by: Anonymous on Monday, October 15 2012 @ 11:22 PM EDT
Has anyone, anywhere ever experimented with interfacing an ordinary computer to
an electric piano keyboard for the purpose of obtaining character inputs
(particularly commands and source code)? I envisage a courtroom demonstration
where a computer-illiterate musician is handed an original score and is able to
play it with sufficient accuracy that the result is plausibly music but has the
side effect of programming the computer to do something obviously intentional (-
display "Hello World!" perhaps). With suitably sparse sampling of the
fairly rich available input it ought to be possible to embed the programming
activity in the music - not so much hidden as an extra layer of functionality
available to more sophisticated interpretations. It may be a very inefficient
programming mechanism but I see no loss in generality and nothing to suggest
patentability in comparison with any other musical composition where copyright
is the only available protection. Even as a thought experiment it might have
some value but I would not be surprised if the necessary ingredients are already
available or within easy reach by adaptation.
jjb~49

[ Reply to This | # ]

What is the actual test?
Authored by: Anonymous on Monday, October 15 2012 @ 11:29 PM EDT

Just a suggestion, when writing this sort of piece, you should always come right out and announce your conclusion right in the beginning. You talk about a test that you are proposing right in the beginning, but by the time I finish reading, I am not really sure what the test is. Don’t hide the ball, just come out and tell us what you want to convince us of.

Is it "As long as the procedure manipulates symbols their meanings will never confer patent eligibility."? Every computer-implemented method manipulates symbols, right? So what is left as being patentable?

Is it "Activities like input, output and mental steps of reading, writing and thinking about the meaning of symbols should not confer patent eligibility to a manipulation of symbols."? If none of these things confer patent eligibility and manipulation doesn't confer patent eligibility, what confers eligibility? Are you just arguing for against software patents altogether? That isn't really a test, unless you test is to determine whether something is a computer-implemented method.

Is it "Data gathering where nothing more is achieved but obtaining the data which will be manipulated should not confer patent eligibility to a manipulation of symbols."?

Is it . . .????

This entire piece seems to be about what is not patent eligible. You never talk about what is a patent eligible computer-implemented method. In other words, how do you apply your test (whatever it is) to that find a computer- implement method is patentable. The Federal Circuit isn't asking whether any computer-implemented methods can be patented (this is already well settled). The Federal Circuit is asking how to determine whether a given computer- implemented method is patentable. Can you apply your test both ways?

[ Reply to This | # ]

A deep subject
Authored by: dio gratia on Tuesday, October 16 2012 @ 02:46 AM EDT

The meanings given to the symbols should make no difference. I suggest this as the line:

As long as the procedure manipulates symbols their meanings will never confer patent eligibility.
There's this issue of abstracts that goes beyond signals and symbols. For instance court systems allow electronic filing in general allowing PDF or other document formats.

There's a point of philosophy that became prominent during the middle ages on 'the name is the thing', where you treat the named object as the object itself.

A file in a particular format (e.g. Word .doc) is not a document. It's software for a virtual machine to be able to effect the printing of a document. WYSIWYG editors just happen to allow us to manipulate the result as if it were real - in the abstract.

As far as the rest of us we happily exchange document format files and entertain them as they were equivalent with printed documents. The definition of document has been extended to embrace the virtual machine program representation (See 3:).

We can manage to understand that even in computer storage it's still a symbolic representation (See 2 b:). Yet we allow patents on symbolic representation manipulations ( I4i v. Microsoft, US Patent 5,787,449 where we equate the symbolic representation (document file) with "an original or official paper relied on as the basis, proof, or support of something (1 b:).

All when those symbolic representations in computer memory are comprised of signals ("a detectable physical quantity or impulse (as a voltage, current, or magnetic field strength) by which messages or information can be transmitted ").

MPEP 2106 Patent Subject Matter Eligibility directs us to the distinction as to when signals are not patentable eligible:

Non-limiting examples of claims that are not directed to one of the statutory categories:
i. transitory forms of signal transmission (for example, a propagating electrical or electromagnetic signal per se), In re Nuijten, 500 F.3d 1346, 1357, 84 USPQ2d 1495, ___ (Fed. Cir. 2007);
ii. a naturally occurring organism, Chakrabarty, 447 U.S. at 308;
iii. a human per se, The Leahy-Smith America Invents Act (AIA), Public Law 112-29, sec. 33, 125 Stat. 284 (September 16, 2011);
iv. a legal contractual agreement between two parties, see In re Ferguson, 558 F.3d 1359, 1364, 90 USPQ2d 1035, ___ (Fed. Cir. 2009) (cert. denied);
v. a game defined as a set of rules;
vi. a computer program per se, Gottschalk v. Benson, 409 U.S. at 72;
vii. a company, Ferguson, 558 F.3d at 1366; and
viii. a mere arrangement of printed matter, In re Miller, 418 F.2d 1392, 1396, 164 USPQ 46, ___ (CCPA 1969).
A claim that covers both statutory and non-statutory embodiments (under the broadest reasonable interpretation of the claim when read in light of the specification and in view of one skilled in the art) embraces subject matter that is not eligible for patent protection and therefore is directed to non-statutory subject matter. Such claims fail the first step and should be rejected under 35 U.S.C. 101 , for at least this reason.
It's this intersection of symbol ("something that stands for or suggests something else by reason of relationship, association, convention, or accidental resemblance", 2 b:) and signal that suggests the key to understanding the limits of symbols in patents. We look at In re Nuijten which despite Judge Linn's minority opinion found that signals aren't articles of manufacture (the closet of the four categories of patentable subject matter as described in MPEP 2106. They are Process, Machine, Manufacture and Composition of Matter). We have seen various District decisions promoting non-transitory signals to composition of matter.

We see the word transitory in the MPEP quote above and the decision depended on non-transitory to define and article of manufacture. We see that the MPEP 2106 I. iii definition of ("an article produced from raw or prepared materials by giving to these materials new forms, qualities, properties, or combinations, whether by handlabor or by machinery") is likely broad enough to include changes in magnetic permeability in storage media or perhaps even FLASH or other nonvolatile memory not based on magnetic hysteresis.

It does suggest that the patentability hinges on imperative versus declarative forms (methods versus abstracts) which should also embrace non-transitory versus transitory. We see software patents embracing methods of producing non-transitory effects representing signals (symbols) but generally not abstracts themselves (Bilski).

For software patents there's this intersection between copyright and patent articles of manufacture that might be governed by In re Miller which cites a reliance on printed matter.

Software per se isn't patentable. Gottschalk v. Benson which addresses for the most parts the four categories of patentable subject matter under § 101 and shows transformation of signals by themselves is abstract, the transitory or declarative side versus imperative of method side. The Supreme Court also throws the issue over the the fence to Congress:

If these programs are to be patentable,[6] considerable problems are raised which only committees of Congress can manage, for broad powers of investigation are needed, including hearings which canvass the wide variety of views which those operating in this field entertain. The technological problems tendered in the many briefs before us[7] indicate to us that considered action by the Congress is needed.
That ambiguity has never been resolved by Congress.

It looks like without Congressional action the only chink in the armor for software patents on either strong enforcement of transitory versus non-transitory transformation or the printed matter doctrine.

See Semiotics 101: Taking the Printed Matter Doctrine Seriously, Kevin Emerson Collins | 85 Indiana Law Journal 1379 (2010):

The printed matter doctrine is a branch of the section 101 doctrine of patent eligibility that, among other things, prevents the patenting of technical texts and diagrams. The contemporary formulation of the doctrine is highly problematic. It borders on incoherency in many of its applications, and it lacks any recognized grounding in the Patent Act. Yet, despite its shortcomings, courts have not abandoned the printed matter doctrine, likely because the core applications of the doctrine place limits on the reach of the patent regime that are widely viewed as both intuitively “correct” and normatively desirable. Instead of abandoning the doctrine, courts have marginalized it. They have retained the substantive effects of the printed matter doctrine but avoided analyzing it whenever possible. This Article adopts a different approach: it takes the printed matter doctrine seriously. It reinterprets the printed matter doctrine as the sign doctrine, revealing both the conceptual coherence hidden in the doctrine’s historical applications and the doctrine’s as-of-yet unnoticed statutory grounding. The key to this reconceptualization is recognizing that the printed matter doctrine is in effect already based on semiotic principles. The printed matter doctrine purports to be about information, but it is actually about signs. It purports to curtail the patenting of worldly artifacts, but it actually curbs the reach of patent protection into mental representations in the human mind. To support these arguments, this Article offers a course in “Semiotics 101”: a semiotics primer strategically targeted on the principles that prove to be relevant to the section 101 doctrine of patent eligibility. This Article also examines one unexpected consequence of taking the printed matter doctrine seriously and adopting a semiotic framework. It reconsiders the patentability of a class of software inventions which are defined here as “computer models.” As a matter of semiotic logic, the routine patentability of newly invented computer models under the contemporary patent eligibility doctrine cannot be reconciled with the categorical unpatentability of mechanical measuring devices with new labels under the printed matter doctrine.
The actual article can be found here (PDF, 972 KB). The gist of which is that we don't disambiguate types of software patents sufficiently to avoid those dealing purely in signs (symbols, semiotics). Fixing that would likewise appear to fall under the remit of Congress. In the mean time we get both patentees (their practitioners) and courts relying on semantic distinctions that can't always be supported compounded by a Patent Office more than willing to let the courts sort it all out.

The question is can the Supreme Court or the CAFC provide a decision that can limit excesses? What is needed immediately is guidance preventing contrasting court decisions based on conflicting interpretations.

I'd personally like to see disk storage of signals held to be transitory, though that's not likely to happen. There's also a collision with the printed matter doctrine that perhaps should. Storage is the media upon which a narrative is written.

There's this distinction in copyright between authorship and copies that storage media sneaks under the tent skirt into patents by equating manufacture with fixation.

And this says pure software ought to pick one, copyright or patents. The issue being it may be easier to avoid copyright than a patent because copyright protection does not extend to the underlying idea. Well guess what, it doesn't in patents either other than process patents and certainly not as far as the domain of printed matter.

What's needed is a greater confluence of legal and technological expertise in making legal decisions from the looks of thing. What we get is semantic analysis without understanding the semiotics (signs). The slightest language shift leads one audience or another astray.

In the mean time it may be sufficient to make the distinction between process (imperative) and math (declarative) while noting programs can contain both. Sort of makes you wonder if you could hang up a patent claim based on software source language. You might make a plaintiff prove what happens by expert witness. We've already seen expansive interpretations there.

Then again there are those of us who question whether software patents address Constitutional purpose which doesn't appear to provide a short cut, either.

In the mean time it might be safe to say as long as manipulation of symbols doesn't produce an actual machine, a manufacture of one or more articles, or composition of matter symbols themselves don't confer patent eligibility.

I enjoyed reading the article.

[ Reply to This | # ]

Amicus Brief Deadline?
Authored by: Anonymous on Tuesday, October 16 2012 @ 04:53 AM EDT
When is the deadline to submit amicus briefs to the Federal
Circuit?

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Tuesday, October 16 2012 @ 08:04 AM EDT
In the sentence "If you go read these definitions in textbooks from
competent authors you will find they are all elements of the language of
mathematics.", you should drop the word "go" since you have two
conjugated verbs side-by-side.

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Tuesday, October 16 2012 @ 08:49 AM EDT
sounds like an excuse for more frivolous lawsuits- be a lawyer- win the lottery
(or several...)

one would wonder how many patents were being built for hundreds of years before
the patent office existed (DaVinci???)

[ Reply to This | # ]

What Does "Software Is Mathematics" Mean? Part 1 - Software Is Manipulation of Symbols ~ by PolR
Authored by: Anonymous on Tuesday, October 16 2012 @ 11:31 AM EDT
For precision:

E = m c**2

Calculates the energy of the "rest mass" - the energy of a particle at
rest. This is useful in calculating the energy liberated when a particle and an
instance of the anti-particle annihilate each another.

[ Reply to This | # ]

Easier to show software is abstract, than software is Mathematics
Authored by: Anonymous on Wednesday, October 17 2012 @ 09:03 AM EDT
I believe you are correct in showing that software is Mathematics. Applying the rule of syllogism to the generalization that "Mathematics is abstract", one finds that software algorithms are abstract ideas and therefore should not be patentable.

However, the same facts and concepts that you use to show that software is mathematics can be used to show directly, that software is abstract. You could then go directly to saying that software should not be patentable.

By doing that you eliminate the syllogism above, simplifying the argument.

You also short circuit all the fallacious arguments, (but tedious and time consuming to refute), in prior replies about the precise boundaries of Mathematics.

Why is this not a way to strengthen the argument?

[ Reply to This | # ]

Scratching the Patent Itch
Authored by: Anonymous on Wednesday, October 17 2012 @ 02:09 PM EDT
Recommendation One:
Every patent must identify how future infringements are
detected and characterized, as to the requested monopoly.

Recommendation Two:
No activity that eludes all the patent's stated detection
methods is liable for infringing that patent.

Recommendation Three:
All detection methods and characterizations of
infringements are restricted to direct observations and
physical measurements (e.g., voltmeter, spectrometer).

The patents I have been involved with are shockingly
murky. Even the patent attorneys decided one granted
patent has two completely antithetical interpretations.
The adversary was banking on this flaw in their patent
to win in court.

It is not sufficient to claim what the patent covers. The
patent should clearly state in legal, operational steps,
precisely how the world will determine infringement in any
future legal proceeding.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )