Friday, August 8, 2014

Contradictions in the Patentability of Numbers

A number can be patented.  The US Patent and Trademark Office will claim that this is not true, but has indeed given patents to numbers.

The title, “On Computable Numbers” (rather than “On Computable Functions”) signaled a fundamental shift.  Before Turing, things were done to numbers. After Turing numbers began doing things.  By showing that a machine could be encoded as a number, and a number decoded as a machine, “On Computable Numbers” led to numbers (now called “software”) that were “computable” in a way that was entirely new.” – Turing’s Cathedral: The Origins of the Digital Universe by George Dyson, New York: Pantheon, 2012.

Since 1880, the USPTO has not required an actual working model, but will grant a patent only based on the plans.  Therefore, without actually producing the working program as an array of gates on an integrated computer circuit (or “chip”), you could get a patent on the Gödelized code for the description: one number would contain all of the necessary information.  That is an extreme example.  Many more instances, all  mundane to computing are easy to find.

The binary number 00100000 = 20 in hexadecimal or base 16 is the same as 32 in base-10.  For a computer that is controlled by an Intel 80xxx processor, that number encoded on an integrated circuit “chip” will terminate the program process.  It is a “stop” command.   The number could be “burned in” and the logic gates would be permanent.  Most often, though, the integrated circuit chip is programmable and only holds a temporary configuration. 

A computer program is just a number.  At the level of human obviousness, a computer program is a string of numbers.   Here is a program.

10110100 00101100 11001101 00100001 10110000 01000110 11111110 11101110 00001010 00100000 00000001 10001001 11000010 10110100 00001001 11001101 00100001 11001101 00100000

That binary representation might seem esoteric, but to a programmer who knows Intel 80xxx processors and the MS-DOS (“Windows”) operating system, it is as “clear and open” as Morse code to an old Navy radioman.  Here it is in hexadecimal as a more human-friendly kind of computer code.

B4 2C
CD 21
B0 46
05 20 01
89 C2
B4 09
CD 21
BA 18 01
CD 21
CD 20

Here is what that means and what it does:

B4 2C    MOV AH,2C       Get the clock
CD 21    INT 21          execute
B0 46    MOV AL,46       Get the seconds
F6 EE    IMUL DH         multiply the DH by the Seconds   
05 20 01 ADD AX, 0120    add 120 to that
89 C2    MOV DX,AX       put that number in the DX register
B4 09    MOV AH,09       display to screen
CD 21    INT 21          execute
BA 18 01 MOV DX, 0118    end of line
CD 21    INT 21          execute
CD 20    INT 20          quit
If this were programmed into an integrated circuit chip it would be a Fortune Cookie device. (It would need the list of Fortunes, but those are plain text and easy to insert.)

Again, for the purposes of the USPTO, every computer is momentarily “hard wired” to be a machine with a specific purpose. Each program that it runs creates a new “machine.”  Every computer program creates a new mechanism, a new system of logic gates “burned” (temporarily) into an array of integrated circuits.

That is another fundamental contradiction in patent law.  If every program creates a new “machine” then so must every change order, every update, every bug patch.  

Would a bug patch release not invalidate the previous patent?  Patent law has no way to deal with an inventor’s invalidation of his own creation.


No comments:

Post a Comment