Remix.run Logo
crowcroft 5 hours ago

I think it's a very common misconception among programmers that the law is a sort of natural language 'program' where you can consistently deduce that x input generate y output.

jorisw 19 minutes ago | parent | next [-]

A point echoed by Nilay Patel (who used to be a law professional) here https://www.theverge.com/podcast/917029/software-brain-ai-ba...

kstrauser 5 hours ago | parent | prev [-]

It sort of is, except that the entire law isn't defined in one place. "Hey, do I have a home office?" Well, "home" is defined over in this regulation, and "home office" is defined over there in that other regulation, and "having a home office" would normally mean this except for this case law that says it can also mean that when these other circumstances apply, and...

These things are knowable, but unless you've spent some time studying it intensely, it's certain that you only know a fraction of the places where the program is written.

If it's helpful, programmers should imagine that it's written in C. At a glance you can tell what something's doing, but once you study it you can find UB all over the place and suddenly it's hard to say what the right answer is until you know the intricacies of the compiler and the target platform. You can't really determine the exact behavior without all that information that lives outside the code. Now, once you have all that, you can surely reason through it all. But how many people actually know all that, or even realize which parts they don't know?

"This is pretty straightforward" is a sure sign of someone who doesn't actually understand it well.

jcranmer 4 hours ago | parent | next [-]

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.

wahern 2 hours ago | parent | prev | next [-]

> [US] tax law drafting style follows default logic, a non-monotonic logic that is hard to encode in languages with first-order logic (FOL).

https://arxiv.org/pdf/2011.07966.pdf

Most law generally is non-monotonic. (See https://en.wikipedia.org/wiki/Non-monotonic_logic) The French tax code is one of the few exceptions.

nerdsniper 5 hours ago | parent | prev [-]

> except that the entire law isn't defined in one place

> These things are knowable

There are absolutely undefined, unknowable areas of law that are waiting on future SCOTUS decisions to be defined.

Heck, we can’t even rely on past SCOTUS decisions.

Even in extremely well-defined law like whether LEO’s have valid PC to search someone during a traffic stop, two different judges in the same district will disagree and appeals courts / state supreme courts can rule quite inconsistently.

That’s by definition not just undefined behavior but also non-deterministic results.

kstrauser 5 hours ago | parent [-]

I agree. I just mean, you can pretty well know today's state, at least hypothetically. But you better be watching tomorrow's legal news to see if anything important changed.

dchftcs 2 hours ago | parent | next [-]

Someone has to be in the news first, and then you learn about it. To that someone, the change you see in tomorrow's legal news is today, was yesterday. It's more a gamble than you think, you just don't feel it until it bites you.

kstrauser 2 hours ago | parent [-]

FWIW, we're in complete agreement. I stand by mt original statement that these things are nearly impossible for a layperson to be competent in. It's hard enough for people who do it every day for a living. An equivalent would be non-techies saying "I'm not going to pay a software engineer. Just tell the computer what you want it to do!" And that might sound reasonable to other non-techies, while you and I roll our eyes and laugh. I'm sure CPAs and tax attorneys and the like think the same when they hear engineers talk about filing their own non-trivial taxes.

32 minutes ago | parent | prev [-]
[deleted]