Comment by jcranmer

4 days ago

Trying to treat law as code-in-English-form is going to lead you horribly astray, however.

The behavior of C code is something that we can, in principle, reduce to semantics in a formal model we know how to describe the behavior of. Now, there's some issues getting there--the specification is more ambiguous than we'd like, and there's definitely certain behaviors that are very challenging to incorporate in a formal model (say, signal handlers). But even something like UB is something that we have good, well-understand models of what exactly it means to hit UB. At the end of the day, whether or not C code is correct, whether or not the compiler is correctly compiling the C code, is a question that has a clearly objective answer.

Law doesn't work like that. Laws are written and interpreted with the understanding that there is flexibility in the mater. If you compute the law and get an absurd result, then people are going to shrug and throw out the absurd result; rather different it is to a compiler where the absurdity is accepted as correct. As a result, there's not really an objective answer to whether or not something is legal, to understanding what will happen in a legal case, like there is to code.

> Law doesn't work like that

This is partly because the law predates compilers and modern communication. Why should a crime get different sentences? Often because judges are humans and somehow that makes it okay to lock some people up for years longer than others.

  • No it isn't, at least not in common law systems like the US. It is part of the principle of how statutes are drafted that they will be interpreted by human judges and shaped by precedent. It's not a technological limitation.

  • Your example is somewhat apropos because one of the more algorithmic portions of law is sentencing. Since the 1980s (i.e., after the development of compilers!), the US has enacted guidelines for sentencing (see https://en.wikipedia.org/wiki/United_States_Federal_Sentenci...) that allows anyone to read the criminal complaint and compute the expected sentence via a calculator (e.g., https://www.sentencing.us/).

    And yet the sentencing guidelines are not binding on outcomes, in part because of the necessary flexibility in law. Sometimes you crunch the numbers and you get absurd results (SBF's fraud conviction is a good example I ran through myself), and so you need the flexibility to throw the algorithm out when the algorithm produces wrong results.