Explanation of Computer Theory for Lawyers

A regular user of groklaw, the legal blog that discusses the SCO vs IBM litigation and related matters (including some generic aspects of computer science and intellectual property law), has written a paper entitled Explanation of Computer Theory for Lawyers, designed to educate legal practitioners on the subject of computability theory, and how it might apply to IP law. The paper was written as a reaction to the oral arguments conducted Monday before the Supreme Court of the United States in the Bilski case, which many observers expect to eliminate so-called "business method patents" from patentable subject matter in the US, and may have an effect on software patents as well.

While it does contain some legalese, it's actually quite useful as an introduction to the topic for other laypersons or students in CS or mathematics. It provides a high overview of the topic--eschewing many details that a praticing computer scientist would need to know, but it's an interesting read nonetheless.

Available here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

A more important result than anticipated

All software is discovered and not invented. [...] When you know computation theory, you know without a shred of a doubt that each of these statements states a fact that is grounded in well-established mathematics. If you don't know computation theory, these statements will probably look to you like debatable issues.

As some discussion in the comments points out, that's a philosophical can of worms that doesn't seem likely to help. After all, all patents are written with a finite alphabet, and any associated diagrams could also be encoded or expressed in some enumerable way. Therefore, all patents are discovered and not invented.

Turns out PolR has demolished the entire patent system, and shown us that anything that can be written down cannot be an invention. The Supreme Court will be most grateful for his assistance in this matter.

Hmm...

You don't expect the Supreme Court to issue the final word on mathematical Platonism? More seriously, it seems that basing patentability on a distinction between discovery and invention is already so fraught with thinly veiled philosophical commitments as to basically bankrupt the whole enterprise.

I can only speak for...

...Justice Scalia, whose hankering to fulfill what he calls "the divine authority behind government" no doubt must extend to rulings in mathematical philosophy. Such a ruling would mark a definitive recovery from the setback suffered as a result of the Indiana Pi Bill.

Seriously, the discovery vs. invention distinction being made by PolR doesn't have much relevance in the patent context.

The criteria used for patents are things like whether the invention is "new" — not already part of the publicly documented or known state of the art — and whether it is non-obvious to a person skilled in the art, which implies an "inventive step". Both of these things can apply to a "discovery" of the sort PolR defines.

So PolR can choose to view everything communicable as a discovery, but it has no impact on what is considered an invention for patent purposes. There's no doubt that the discovery/invention distinction is a subjective one, but that's why the patent office and the courts are needed to adjudicate it.

But are the philosophical issues here really any more problematic than they are for ordinary laws, many of which are based on moral beliefs that have a similarly subjective basis? Neither the validity of patents nor laws can be decided by an algorithm, because both involve a significant element of negotiation about subjective factors. I don't intend to defend the patent system particularly, but I think that criticisms of it on formally-based grounds tend to overlook this point.

PolR can choose to view

PolR can choose to view everything communicable as a discovery, but it has no impact on what is considered an invention for patent purposes.

I haven't finished the article, so I don't know if PolR makes this argument, but I agree that quibbling over discovery/invention/innovative/etc. are not particularly relevant to how the courts will rule on this issue. However, the courts do strive to be consistent.

Precedent rules out "abstract ideas" and mathematics as non-patentable, so to be consistent this should extend to software given the arguments in the article. The briefs PolR quoted in the article are thus plain wrong.

Then again, the courts may just intentionally make math patentable after all because of the facts as described in this article. If they want to leave out math, but include software, they would have to set out a set of criteria for when a proof/program becomes patentable. Sounds pretty tricky to me.

I haven't finished the

I haven't finished the article, so I don't know if PolR makes this argument

He claims early on that programs are discoveries, not inventions, because they are enumerable, and that this has some sort of bearing on patentability ("whether or not any of these statements is true could determine whether or not software is patentable subject matter".) That seems false to me. I extended his claim about program enumerability to its logically equivalent conclusion for all inventions, as a kind of reductio ad absurdum.

(Of course strong opponents of patents might argue that this is a valid argument against all patents, but that's a separate issue.)

The briefs PolR quoted in the article are thus plain wrong.

Professor Hollaar's brief is certainly wrong ("the correspondence between computer programs and mathematics is merely cosmetic".) I'm not sure which others you're referring to.

But PolR also includes some badly incorrect claims about things like the court decision "In re Alappat", for example. The court essentially concluded that a program is a kind of machine. PolR claims that the court made an error "because it didn't know about computation theory," but the conclusion PolR reaches doesn't unambiguously follow from computation theory. Even taking computation theory into account, it's perfectly reasonable to conclude as the court did. The language of computation reflects this with its use of terms like "state machine" and "abstract machine".

These are at least partly matters of interpretation, and that interpretation depends on some context, in this case a legal context. One might be able to show that in the legal context, the decision is inconsistent, but the theory of computation doesn't falsify this decision.

The patent system obviously has big problems right now with the blurriness of the line(s) between data, mathematics, software, and traditional "inventions". But PolR's article has too many inappropriately dogmatic over-claims to be of much use in helping to illuminate or settle these issues.

The court essentially

The court essentially concluded that a program is a kind of machine. [...] Even taking computation theory into account, it's perfectly reasonable to conclude as the court did. The language of computation reflects this with its use of terms like "state machine" and "abstract machine".

I don't think it's any surprise that machines are purely mechanistic in the same way that effective methods are. The difference in meaning of "machine" in legal and mathematical contexts is in physical realization. A physical machine that implements a process described by a program is patentable, but the program itself, the description of or abstract notion of the machine is not itself patentable (edit: historically I mean).

In this sense, you can no more patent a program describing such a machine than you can patent the patent for the machine. Otherwise, you could then patent the patent of the patent for the machine, and then patent the patent of the patent of the patent for the machine, ad infinitum. I think this is, or at least should have been, the thrust of his point. A description of a machine or process is not the same as the physical realization of said machine/process. Pure information has its own set of laws governing it, namely copyright and trademarks which already define the rules of derivation.

So from a legal perspective, I can see how the court's conclusion that a program is a machine is inconsistent with the meaning of "machine" in precedent, but I agree it's consistent with the term's usage in mathematics; perhaps he meant that the court concluded that a program meets the mathematical definition of a machine, but it was the wrong definition for that context, as precedent has a different meaning.

Just as final thought, you can't just accidentally "discover" a physical machine the way you can knowledge, so I can see how there might be some useful distinction to be made given some thought (edit: in case this wasn't clear, I just meant that getting an idea for a machine is not historically sufficient to obtain a patent, you must actually build a prototype, which requires resources and capital).

But PolR also includes some

But PolR also includes some badly incorrect claims about things like the court decision "In re Alappat", for example. The court essentially concluded that a program is a kind of machine. PolR claims that the court made an error "because it didn't know about computation theory," but the conclusion PolR reaches doesn't unambiguously follow from computation theory.

Having just read this section, I think you mischaracterize his argument. The passage he quotes from "In re Alappat":

We have held that such programming creates a new machine, because a general purpose computer in effect becomes a special purpose computer once it is programmed to perform particular functions pursuant to instructions from program software.

PolR disagrees with this argument, and I'm inclined to agree. A universal machine does not cease to be universal because it can simulate a special purpose machine, and certainly one could make this argument using computation theory. So I'm not sure what you consider "badly incorrect"; certainly he's a bit long-winded, but not incorrect that I can see.

As for other citations that are plain wrong, "Application of Walter D. BERNHART and William A. Fetter", follows directly after the above. Also Gene Quinn's argument against software as math.

A universal machine does

A universal machine does not cease to be universal because it can simulate a special purpose machine, and certainly one could make this argument using computation theory.

It doesn't (necessarily) cease to be universal, but that's beside the point. The court is considering the equivalence between a computer running a program and a special-purpose machine, and concluded that the two can be considered equivalent. The court is not saying that the computer ceases to be capable of universal computation; whether or not it does is irrelevant in this context. Perhaps this is a case where the legal context is being misunderstood by PolR.

[Edit: as a somewhat relevant aside, if it mattered for legal purposes, a computer could be restricted from performing other functions, as in many embedded applications, making it no longer universal for legal purposes. The theoretical possibility that it might still be repurposed for general computation would probably not then be relevant. In this case, what theory says is only relevant if it has some sort of consequence that would undermine the legal position on the matter. To argue against the legal position based on theory, you'd have to describe those consequences. PolR is instead attempting to claim that the theory alone makes the legal position false, which doesn't work.]

PolR's argument is badly incorrect because it's irrelevant to the court's point, but it claims that the court's position is wrong because the court "didn't know about computation theory," which may or may not be true, but is also moot in this case given that the court reached a perfectly valid conclusion.

Thanks for the other references. I'll take a look.

The court is considering the

The court is considering the equivalence between a computer running a program and a special-purpose machine, and concluded that the two can be considered equivalent.

Having thought about this for a bit, I think it's ultimately a matter of consistency. Precedent established that abstract concepts and mathematics are not patentable. Programming is a mathematical activity, as explained in the PolR article, so either the criteria on the patentability of math needs to be revised, or software patents must be rejected. Drawing a line on the "types of math" that are patentable seems tricky, but perhaps it's doable.

The PolR article describes many fallacious arguments judges made for why a particular software patent was allowed, but it ultimately reduces to allowing certain types of math to be patented. Knowing that precedent dictated that math cannot be patented, but not understanding computation theory does explain why they devised some fairly elaborate, but fundamentally flawed arguments to allow a software patent; or perhaps they did understand it, but simply disagreed with precedent on patenting math. PolR attributed it to the former, but it's irrelevant to the larger point.

Your argument on the equivalence of a computer running a program and a machine is dodging the fundamental issue that math is being patented, and I think that point needs to be acknowledged in the courts if the debate on software patents is to be settled.

PolR obviously took a hard line in saying that "no math is patentable so software patents are not allowed", where you are saying "certain types of math may become patentable so software patents may be allowed". They are both legitimate points.

Yep

I don't intend to defend the patent system particularly, but I think that criticisms of it on formally-based grounds tend to overlook this point.

I completely agree. The patent system may have problems, but the article's problems are worse.

Not only that,

but there is precedent in the Supreme Court for ignoring scientific / mathematical "facts".

Case-in-point: In 1980, the Supreme Court ruled in favor of Chakrabarty's genetically engineered oil-eating bacteria patent, thus opening the flood gates for patenting any living organism.

Bottom line: Just because the EU is sensible, does not mean we should expect the same from the US.

The only major difference right now is that in software, the major players like Microsoft get sued, whereas in the '70s, it was big companies who were suing everyone of the little guys. Thus, the big guys have a fair amount of motivation to not make it too easy to sue. -- MS Office has been the subject of two big lawsuit losses in the past decade.

My thoughts, on reflection

Now that I've posted the link to the article, and had some time to reflect on the matter, my thoughts. Like the author (and most of us here), my training is in computer science and not law; my legal chops are probably even less honed than the author's are.

The paper heads in a promising direction, I think, when it takes up the difference between extensional and intensional equivalence, and how this might be meaningfully applied to patent law. Unfortunately it abandons the thread somewhat; I think, from a public policy point of view, that this is an important distinction.

Copyright law, as the paper notes, focuses on intensional equivalence, and a strong form thereof. It is perfectly reasonable under copyright law for two authors to independently write the same program (or two programs implementing the same algorithm); algorithms themselves are generally held to be abstract ideas which are not copyrightable. Just what elements of computer code (in whatever form) are expressive, and thus deserving of copyright protection, is an interesting question. (SCO, among other things, asserts copyright over the <errno.h> header; given that the purpose of this header is to bind symbolic names to numeric error codes in the Unix ABI, many observers consider this claim to be dubious).

But extensional vs intensional seems to me to be a good place to draw the line with regard to patent law. Nobody ought to be able to patent a function; but specific algorithms might be patentable. (A patent on a given algorithm is obviously not construed, under this regime, to extend to other algorithms for computing the same function--even if the claim language suggests otherwise). Quite a few patents in the software arena, in areas such as data compression in particular, essentially are function patents--under the current claim language, it is probably impossible to write a reasonable non-infringing MPEG decoder without a license.

For specific examples of this dichotomy, consider the functions "sort" and "DFT" with specific algorithms such as "quicksort" or "split-radix FFT".

State St. is badly misunderstood

I think that the State St. decision has been badly misunderstood, widely, and that SCOTUS has a chance of clearing things up here. I think that rehearsals of "computation theory" have little relevance to State St. (I'm not familiar enough with Bilski to speak to its relevance there).

State St. is widely (mis-)understood as opening the door to "software patents". Yet, here is a critical passage from the decision:

Today, we hold that the transformation of data, representing discrete dollar amounts, by a machine through a series of mathematical calculations into a final share price, constitutes a practical application of a mathematical algorithm, formula, or calculation, because it produces "a useful, concrete and tangible result"--a final share price momentarily fixed for recording and reporting purposes and even accepted and relied upon by regulatory authorities and in subsequent trades.

The district court erred by applying the Freeman-Walter-Abele test to determine whether the claimed subject matter was an unpatentable abstract idea. The Freeman-Walter-Abele test was designed by the Court of Customs and Patent Appeals, and subsequently adopted by this court, to extract and identify unpatentable mathematical algorithms in the aftermath of Benson and Flook. See In re Freeman, 573 F.2d 1237, 197 U.S.P.Q. (BNA) 464 (CCPA 1978) as modified by In re Walter, 618 F.2d 758, 205 U.S.P.Q. (BNA) 397 (CCPA 1980). The test has been thus articulated:

First, the claim is analyzed to determine whether a mathematical algorithm is directly or indirectly recited. Next, if a mathematical algorithm is found, the claim as a whole is further analyzed to determine whether the algorithm is "applied in any manner to physical elements or process steps," and, if it is, it "passes muster under § 101."

[emphasis added]

What is upheld there is not the patent worthiness of an abstract algorithm, but the patent worthiness of a mechanism for managing particular real accounts of actual dollars and securities.

There is nothing in the court's logic there that leads to the conclusion that you or I or not free to implement and use the algorithm - only that we are not obviously free to use it to operate a hub and spokes system of mutual funds.

For example, suppose that I wanted to predict how certain funds would behave. For that, I will use a simulator. I'll make up "fake" accounts for the spokes and simulate the spoke and hubs arrangement using the self-same algorithm. Nothing in the Court of Appeals' decision suggests that my mere implementation and use of the algorithm described in the patent would infringe.

On the other hand, if I took my implementation and hooked it up to real spoke and hub accounts, moving around real money, creating real regulatory-significant documents - then I would risk infringing.

Here is a more tangible analogy:

Let us suppose that I cleverly devise an algorithmically defined shape for some mechanical machine component. In my patent, I rehearse the algorithm that drives a 3D printer to make my mechanical part. Now, if I sue you for implementing that self-same algorithm to produce a CAD data file you use to study the shape, probably I lose. If I sue you for connecting a source of raw plastic to a 3D printer, running the algorithm, and manufacturing instances of the part - I might very well win. The court in State St. decided that the formal legal documents and real account balances of the funds in the spoke and hub arrangement were tangible enough as to resemble the situation I just described.

No software or algorithm in the abstract was deemed patentable in State St. A machine that transformed very specific tangible things using that algorithm was deemed patentable (unless the lower court could find some other excuse to the contrary, which it did not).

"Computing theory" doesn't help here.

Relevant and useful: What Color are your Bits?

An explanation of Lawyer Theory for programmers and mathematicians. :)

http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php

(Confession: I found it rather better-written and more convincing than the linked article.)

It explains the insanity

It's definitely a well written and lucid explanation. Unfortunately the viewpoint that it is explaining is clearly crazy, and sadly those who expouse that particular viewpoint seem incapable of realising it. I think that most programmers and scientists would take the 'rationalist' approach: numbers obey mathematical definitions, two equal numbers are equal. There is no hidden information about their ancestory and heritage. Furthermore this is the only rational way to view the subject, not least because it is impossible to compute functions over non-existent hidden information.

The legal profession doesn't really care about the nature of bits. Even in cases that concern the transfer of bits in a computer system they have no interest in the mechanics. The legal interest is in information; a computer scientist would think of Shannon and claim that the two interchangable, but to the legal mind they are distinct. Information does have an ancestory and heritage. It is guaranteed by social convention, and social conventions are the tools of the trade for lawyers.

Both of these articles have been interesting reads as they are documenting an era of culture shock on either side. I think that this is probably the first occasion (feel free to correct me) that the legal profession has run into a situation that cannot be controlled by modifying or imposing a social convention on the actors involved. It is also probably the first time that the Computer Industry has run into such demand for a set of products that cannot ever be built; huge sums of money have been made by selling snakeoil substitutes that look similar enough: DRM, DPI and "copyright databases".

If enough people in both industries start to understand the other side then we could start to see some interesting compromises.

Clearly crazy

Unfortunately the viewpoint that it is explaining is clearly crazy ...

Why do you think so? This 'colour' isn't a property of the numbers themselves - it's a property of the physical bits that represent the number.

What are physical bit?

Perhaps the term crazy was a little strong. But what do you mean by "physical bits"? If there was some kind of physical manifestation of numbers then it would indeed make sense to ascribe them with properties. But there are no physical manifestations - when we consider digital goods they are purely numbers. We can read in any physical description of these numbers and pass them around purely as numbers without losing anything.

So if something really is just numbers, then it cannot actually possess 'Colour' as a property. So any attempt to enforce properties, and their preservation is doomed to failure. Hence my original claim that a viewpoint assuming that you could not only give these numbers properties, but also force their preservation, was insane.

Note, this is separate from the issue of whether or not it would be desirable to enforce these kinds of properties.

Physical bits

But there are no physical manifestations - when we consider digital goods they are purely numbers.

How can a pure number be any kind of good? When you pay money for an MP3 online, a stream of bits is read from physical memory somewhere and is physically encoded as a network signal. It's that encoded stream of bits that has color. If you read a copyrighted work and recreate it somewhere else, the color tags are transfered to that recreation via the neurons in your brain. There's always a physical encoding.

Bits are not Numbers

A bit is a unit of information. A bit has representation in a physical medium - typically a wave-form or state. One may reasonably call this representation a 'physical bit'.

Information has an associated origin or history... and, therefore, also a future. Information can be created, hoarded, bought, sold, duplicated, and destroyed.

Not so for numbers, except insofar as those numbers are represented within information...

What Type is your Value?

Nice article indeed, even if a bit on the long side.

There is a close correspondence to PL here: what he calls colour is what we call a type. Like types, colours are not intrinsic to values, but are assigned by an external system of rules and guard their valid uses. In particular, two identical values are not interchangeable if they have incompatible type according to those rules. (And his discussion of why colour via tagging or as a function of bits does not work happens to explain why "dynamic typing" is not a scalable approach either.)

And in fact, information flow type systems implement this correspondence: they assign something like colour (or security level) to values and computations, to track where they can be legally used.

Edit: I disagree with Andrew that the viewpoint is crazy. The question is whether such a system is desirable, and whether it is implementable (i.e., enforceable) at all.

Not quite a perfect fit

All of the problems discussed in the two articles involve data held separately from programs. Either as it has been stored, or as it is in transit between programs. While types are a good description of hidden, or external properties, within programs, I don't see how they can be used to describe data in transit between programs. You've ruled out tagging already, perhaps you could give a simple example of how you think Types would be useful in this context?

The equivalent to "program"

In this context, the equivalent to "program" is the whole of society: law imposes rules and restrictions on exchange of physical and intellectual objects (digital data just being a special case) in society just as a type system imposes them on values in a program. I'm just saying it's similar from a logical perspective, and thus properties like "colours" without physical manifestation make sense in principle. Whether they are implementable (and hence practically "useful"), or even desirable, and what the rules should be, is a whole different story.

Continuing

If the program is the whole of society, and if "colour" is a type system, then we immediately need to deal with reflection, don't we? Unless we leave law entirely in the domain of Our Benevolent Creator...

Lawyers

Oh yes, certainly: one important reflection construct is called the "lawyer". ;-)

It is more than that, because laws can also be changed and everything. As with any analogy, it carries only that far.

I think it gets you quite

I think it gets you quite far. The laws changing is just a live code upgrade.