News for hackers. Stuff that matters.
Re:GitHub Copilot is not infringing copyright by ModernMech on Monday July 05, 2021 @12:19PM (#27739479)
An algorithm is maths, but a lot of code isn't algorithmic. Algorithms provably halt, and most software doesn't halt, let alone provably. Operating systems, browsers, games, etc. are non-algorithmic. It's hard to claim that something like a browser is just math and therefore deserves no IP protections.
Re:GitHub Copilot is not infringing copyright by denton-scratch on Monday July 05, 2021 @02:11PM (#27740455)
An algorithm is a reasoning procedure. A program (e.g. a browser) embodies many algorithms.

I've not come across your stipulation that for a thing to count as an algorithm it must provably halt, but I can go along with that. So I'd argue that in most cases, any function or subroutine provably terminates, even if the program embodying it is not supposed to terminate.

I also don't agree that an algorithm is "just maths". At least, not if you then pivot to saying that a browser isn't "just maths". Any operation performed by a computer is "just maths", because what a CPU does is basically arithmetic and branching.

I don't think it's a question of what does and doesn't "deserve" IP protection. The source code of a browser is clearly an original work, and entitled to protection. But the ideas and procedures it embodies are not "works", and copyright isn't supposed to apply to ideas and procedures.

I'm against the very idea of "intellectual property". It must have seemed a good idea at the time, but I think patents and copyrights have become monsters that inhibit, rather than encourage, innovation and creativity.

Re:GitHub Copilot is not infringing copyright by ModernMech on Monday July 05, 2021 @05:19PM (#27741915)
> I also don't agree that an algorithm is "just maths". At least, not if you then pivot to saying that a browser isn't "just maths".

Algorithms are distinguished by their proofs of correctness. This elevates them above simple procedures. The halting problems tells us that there is no automatic way to determine whether or not a program terminates. So when we find one, it's like discovering a mathematical law. The proof of an algorithm's correctness is expressed independently of any programming language or platform. What else could they be other than math?

Things like browsers, games, operating systems, e-mail clients, music players etc. are not treated this way. They are not formally specified. They are implemented in the context of a machine and an actual running environment. The source code of the program usually doubles as its specification. It's very different compared to an algorithm.

I agree IP as a concept is bad, but this is the way of the world at least for now. Given where we are, for me it makes sense to draw a line between algorithms and software in the context of copyright.

Re:GitHub Copilot is not infringing copyright by denton-scratch on Tuesday July 06, 2021 @06:51AM (#27746602)
I'm afraid I still don't agree with you; algorithms existed (and were named) long before The Halting Problem was stated. This "proof of correctness" claim doesn't wash with me.

Can you cite? (Wikipedia's explanation of what an algorithm is doesn't mention that). I'm open to being corrected, but not baldly contradicted.

Re:GitHub Copilot is not infringing copyright by ModernMech on Tuesday July 06, 2021 @07:26AM (#27746916)
I remember learning this in my algorithms class many years ago. We used the Comen et al Intro to Algorithms book, which goes a long way to providing a proof for every algorithm discussed: https://mitpress.mit.edu/books/introduction-algorithms-third...

Wikipedia does mention it though:

  In mathematics and computer science, an algorithm is *a finite sequence* of well-defined, computer-implementable instructions, typically to solve a class of specific problems or to perform a computation.
"Finite sequence", meaning it terminates. The wiki citation (The Definitive Glossary of Higher Mathematical Jargon) provides a little more: "A finite series of well-defined, computer-implementable instructions to solve a specific set of computable problems. It takes a finite amount of initial input(s), processes them unambiguously at each operation, before returning its outputs within a finite amount of time." https://mathvault.ca/math-glossary/#algo

So they stipulate finite input and output and finite runtime. This is in contrast to something like a webserver or OS, which has a potentially unbounded number of inputs, and is expected to run effectively forever.

I mean think about it, what does an OS kernel look like in its most distilled form? It's essentially just an entry point to an infinite loop. Same as games, where they're called "event loops" in that domain.

The way I think about it is this: if computers and programming languages and software didn't exist, algorithms still would. I don't think you can say the same about e.q. Quake. Quake isn't a mathematical truth even though it uses them to work, kind of like how engineers use physics to build a bridge, but the bridge itself isn't physics.

Re:GitHub Copilot is not infringing copyright by denton-scratch on Tuesday July 06, 2021 @12:15PM (#27750502)
Well, I don't consider an OS or a browser to be the implementation of an algorithm. It has to be possible to understand an algorithm, re-implement it, and so on. I'd say you have to be able to hold it in your head - like Eratosthenes' Sieve.

I don't see anything in the WP article about proofs of correctness. "Finite sequence" surely just means that the number of instructions isn't infinite? Come to think of it, that wording seems rather hand-wavey; I wonder if I can find citations to help me improve it.

Re:GitHub Copilot is not infringing copyright by ModernMech on Tuesday July 06, 2021 @05:17PM (#27754381)
> I don't see anything in the WP article about proofs of correctness. "Finite sequence" surely just means that the number of instructions isn't infinite?

Well how are you going to show that the algorithm terminates for all inputs without a proof of correctness?