Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Algorithm patents do not patent math, they patent processes that are describable with math. It is the difference between patenting the concept of "sorting" and patenting a specific sorting algorithm; only the latter is allowed. The conceptual test for patentability of an algorithm in most countries is that it is directly reducible to practice as a novel electronic circuit design.

All patentable subject matters are directly describable with math in exactly the same way as proper algorithm patents, and chemical process patents have an identical abstract structure (just change "bits" to "atoms"), so any specific argument against algorithm patents would consistently apply to most or all patentable subject matters.



> Algorithm patents do not patent math, they patent processes that are describable with math. It is the difference between patenting the concept of "sorting" and patenting a specific sorting algorithm; only the latter is allowed.

The problem with this logic is that algorithms and math are the same thing.

F=ma describes what happens when you hit a golf ball with a club. You can't patent F=ma, you can patent a novel golf club. A golf club is not an equation.

An algorithm is not described by math, it is math.

Thought experiment: Suppose that you were allowed to patent math. Name some product that would infringe the math patent that would not infringe the corresponding algorithm patent.

> The conceptual test for patentability of an algorithm in most countries is that it is directly reducible to practice as a novel electronic circuit design.

That is no test. All novel algorithms (or, equivalently, mathematical formulas) are directly reducible to novel electronic circuit designs. Deterministically by a machine. It's like saying you can't patent math unless you write it down. You're attempting to distinguish two things using a test that identifies them as equivalent.

> All patentable subject matters are directly describable with math in exactly the same way as proper algorithm patents, and chemical process patents have an identical abstract structure (just change "bits" to "atoms"), so any specific argument against algorithm patents would consistently apply to most or all patentable subject matters.

The difference is that with "atoms" the description is distinct from the implementation. A computer simulation of the atoms in Tylenol wouldn't infringe a patent on Tylenol. The simulation is math. The simulation doesn't treat aches and pains.


One of the fundamental concepts in algorithmic information theory is that the physical design and construction of your "novel golf club" is completely and perfectly equivalent to a mathematical equation in exactly the same way the RSA algorithm is. The argument generalizes to all patentable subject matters. And as fabrication technology is becoming more sophisticated this fact is starting to become more obvious in practice.

No one patented modular exponentiation, they patented an encryption algorithm that employs modular exponentiation. That is a distinction with a real difference. All patents have this type of construction. The same argument could be used to assert that all chemical process patents are patenting common chemistry or facts of nature.

The deeper issue with both copyrights and patents is that they are based on legal distinctions that don't exist mathematically. The law must therefore necessarily be inconsistent and ambiguous in its treatment of such things. Piling yet another mathematically unsupportable fiction on top of the existing ones won't mitigate the problem.

I can live just fine without algorithm patents but as a matter of principle I also object to the obviously selective and inconsistent application of standards for what is and is not patentable.


> One of the fundamental concepts in algorithmic information theory is that the physical design and construction of your "novel golf club" is completely and perfectly equivalent to a mathematical equation in exactly the same way the RSA algorithm is.

Equations and algorithms can't generate force or protect metal from corrosion or convert chemical reagents into medicine. They have no corporeal existence. There is no computation you can do that will get the golf ball into the hole.

> And as fabrication technology is becoming more sophisticated this fact is starting to become more obvious in practice.

Using a 3D printer to make a patented golf club is clearly patent infringement. Widespread availability of fabrication technology is certainly going to make enforcing certain patents much more difficult in the same way that it has for copyright but what does that have to do with patentability?

> No one patented modular exponentiation, they patented an encryption algorithm that employs modular exponentiation. That is a distinction with a real difference.

It's the same piece of code. Math has no particular intent.

> All patents have this type of construction. The same argument could be used to assert that all chemical process patents are patenting common chemistry or facts of nature.

No one is disputing that anything can be described by math. The point is that the math is different from the thing it describes. A chemical process is not itself math. An algorithm is.

A good way to understand it is to realize that a physical thing can be used as a "computer" to execute the mathematical algorithm describing its behavior but the reverse is not the case. You can calculate 'E' in "E=mc^2" by setting up a nuclear reaction that will convert a mass 'm' into energy 'E' and measuring the energy that is produced. You can perform the same calculation using a general purpose computer. So the algorithm/formula "E=mc^2" can be executed on a nuclear reactor or on a smartphone. But doing the calculation without the nuclear reaction will not actually produce 'E' joules of energy that could be used to e.g. drive a steam turbine. That's the difference.


Your E=mc^2 example actually highlights one difference between patentable and non-patentable math. Calculating E does nothing useful by itself. But calculating the DCT of a series of numbers representing an image, arranging it in a matrix, traversing it in a zigzag pattern and applying run-length encoding does do something undeniably useful: it allows compression, which can conserve bandwidth and disk-space.

Yet you seem unwilling to accept the difference between mathematics and applications of mathematics, of which the latter is being patented.

Let me try a different analogy. Mathematics cannot be copyrighted. Yet software can be. If you can resolve this conflict, you may find a hint to explain how software can also be patented.


> Calculating E does nothing useful by itself. But calculating the DCT of a series of numbers representing an image, arranging it in a matrix, traversing it in a zigzag pattern and applying run-length encoding does do something undeniably useful: it allows compression, which can conserve bandwidth and disk-space.

All math is useful for something. How is calculating 'E' not useful? I need to know how many turbines to build.

> Mathematics cannot be copyrighted. Yet software can be. If you can resolve this conflict, you may find a hint to explain how software can also be patented.

There are multiple equivalent encodings to represent any mathematical operation. Since the encodings are equivalent, choosing one is a creative act having no mathematical consequences. Copyrighting that work of authorship provides no monopoly over the math because the same math remains available to anyone else using any of the infinitely many other possible equivalent encodings. Even in the unlikely event that someone else independently comes up with exactly the same encoding (more likely for extremely simple algorithms), independent creation means no copyright infringement. By contrast, a patent would cover all of the equivalents and make no exception for independent creation, which would make it a patent on the math itself rather than any particular encoding.


> I need to know how many turbines to build.-

And that is a patent-eligible application* of the abstract equation :-) You could potentially get a patent on that application but that would not preempt the equation itself. Somebody else could potentially get a patent on the use of that exact same equation to calculate the number of atoms to feed into an anti-matter space drive.

> There are multiple equivalent encodings to represent any mathematical operation...

And similarly there are potentially infinite applications of a mathematical operation. Patenting one application does not provide a monopoly over the mathematical operation itself. Now you may again try to conflate "algorithm" and "abstract mathematics" and "computation" again, but you cannot change the fact that the algorithm without its practical application is meaningless.

But even algorithms are too specific a word for most software patents. Consider a patent on a mobile app (valued at, say, $10 billion) that claims sending photos over a network that are auto-erased at the receiver after a time period expires. What is the algorithmic complexity of that?


> And that is a patent-eligible application* of the abstract equation

I think we've come to the heart of it here. The heat output of a particular reaction is a law of nature. Its calculation is a mathematical operation. The discovery of that mathematical formula E=mc^2 is non-obvious. It took centuries of scientific minds before Einstein. But given that law of nature and its mathematical description, the decision of how many steam turbines to build for a given energy output is preposterously obvious.

So the problem is they're granting patents on obvious applications of computations just because the computation itself is non-obvious.

Which makes it a simple rule to clarify things: a) Computations are not patentable and b) obvious applications of unpatentable computations are not patentable.

> And similarly there are potentially infinite applications of a mathematical operation. Patenting one application does not provide a monopoly over the mathematical operation itself.

The problem is they aren't issuing patents on applications, they're issuing patents on algorithms. It doesn't matter what application you use the software for because the software itself infringes the patent. The so-called application devolves to "run this algorithm on a computer."

> But even algorithms are too specific a word for most software patents. Consider a patent on a mobile app (valued at, say, $10 billion) that claims sending photos over a network that are auto-erased at the receiver after a time period expires. What is the algorithmic complexity of that?

Let's see.

  recv_file(image_url, filename);
  set_timer(time_period, bind(&delete, filename));
That's about it. Obviously each function has its own rabbit hole to go down, but so do all mathematical operations, even the seemingly fundamental ones that programmers treat as intrinsic. You can make any mathematical operation arbitrarily complex; it's turtles all the way down. And each of the individual functions above exists in the prior art.


Calculating the DCT of a series of numbers representing an image, arranging it in a matrix, traversing it in a zigzag pattern and applying run-length encoding does something undeniably mundane, in the eyes of a typical computer programmer. We call this transformation. It's useful, but it's MATH.


1. No, it is a useful application of math. The moment it can be used for absolutely practical purposes like compression, it is no longer abstract.

2. It appears mundane because I just spelt it out for you. Was it "typical computer programmers" that invented JPEG encoding?


"Equations and algorithms can't generate force or protect metal from corrosion or convert chemical reagents into medicine. They have no corporeal existence. There is no computation you can do that will get the golf ball into the hole."

Algorithms can; they can create a decision to apply a paint or to move an actuator in a particular way, or to remove access to a file or to remove a file completely. This is the way that algorithms can be materialized in the same way that a chemical process described as a series of instructions for building machines and using them to process base materials can be materialized.


Only if the machine is doing something in excess of computation. Then you have a machine that applies paint in a particular way. The algorithm itself isn't the thing you're patenting anymore.

Whereas "removing access to a file" is still nothing but computation. The machine in that context is fully abstract. Any general purpose computer of any design can do it. So the algorithm itself should be unpatentable and the machine is a general purpose computer that exists in the prior art, which leaves nothing to patent.


Allowing patent on even 'math' should not be an issue as long as the math technique is sufficiently complex that the probablity of someone else independently arriving at that math within the patent term seems to be very low


> Allowing patent on even 'math' should not be an issue as long as the math technique is sufficiently complex that the probablity of someone else independently arriving at that math within the patent term seems to be very low

Your criteria would exclude in excess of 99% of issued software patents. Keep in mind that 20 years is the period of time between the introduction of DNS and the introduction of the iPhone. Twenty years ago Google did not exist and Windows 3.11 was the latest version. Twenty years before that the IBM PC did not exist, Microsoft did not exist, TCP/IP did not exist, AT&T would be The Phone Company (singular) for another decade, the Cold War was in full swing, people were wearing Disco Suits and many of the parents of this year's crop of college graduates had not yet been born.

Unless you meant that the term of a software patent should be on the order of six months to a year, which hardly seems worth the candle.


> No one patented modular exponentiation, they patented an encryption algorithm that employs modular exponentiation.

Then I must ask: What invention is needed to invent the algorithm, once you know the math?

Is this a novel invention (no prior art about the same algorithmic idea being applied elsewhere)?

Is it non-obvious (a professional computer programmer couldn't be expected to come up with the algorithm, when presented with the math)?

I'm no expert, but I suspect that if you teach me the math behind a particular encryption scheme, then I could program the algorithm without too much difficulty.


>What invention is needed to invent the algorithm, once you know the math?

Math and algorithm are overloaded terms that often mean the same thing, so it's not possible to answer that question. However, to clarify what jandrewrogers meant: at the time modular exponentiation was a known mathematical construct; what was invented and patented was a new, previously unknown algorithm that used that mathematical construct as part of an encryption technique.

Now both can be seen as "math" or "algorithm", but the key difference is that the encryption algorithm has practical utility (i.e. providing security) whereas modular exponentiation by itself has none.


The problem with patenting a specific algorithm is that a human sitting at a desk with a piece of paper and a pencil can perform pretty much any algorithm. It might be hard for a human to do, or a group of humans to do, but it's still conceivable. A great many algorithms we use and enjoy today were developed with nothing more than a blackboard and a piece of chalk after all...well before being committed to code or circuit.

Doing it "on a computer" just means it's faster and less error prone, but in theory, just about any algorithm can be done without a specific software or hardware implementation.

But algorithms, can be described as math, but nonobvious and useful processes can also be patented. So can improvements to existing processes.

A simple example, the Fast Inverse Square Root is nonobvious and useful, even if it's simple in execution.

Novel algorithm design can also be the result of years of work. And in theory patents would have allowed the inventor of the algorithm to recoup that development cost through a short term monopoly. And I think that's fine. But that short term is turning into long term and I think that's a problem.

The irony is that attempts to lengthen the term of monopoly granted by a patent might in the end undo the whole system.


I'm curious, where do you see attempts to increase patent terms?


It's happening in pharma and medicine right now. [1] To justify the cost of R&D, there's a significant lobbying effort to increase patent term to longer periods.

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2585454/


Ah, I was unaware, thanks.


What if I write a compiler which is able to produce automatically the mp3 compression scheme through a more generic description of lossy stream processing, along with the ad-hoc math notions (fourrier transform, etc)? Does it mean every person using that compiler will potentially have to pay? We already have software framework able to automatically (dis)prove theorems and generate code, so we're not very far practically from the above hypothesis, what will happen then?




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: