To bardzo interesujące pytanie.
Prawo jest gdzieś pomiędzy językiem codziennym z jego arbitralnymi, ciągle zmieniającymi się i często miękkimi regułami, a językiem programowania z jego bardzo szczegółowymi, określonymi regułami.
Legalese faktycznie definiuje jego terminy, a zatem wiele słów (ale nie wszystkich!) Używanych w prawie ma rzeczywiście dokładne znaczenie.
Interpretacja polega jednak na tym, że podejście do przedstawienia sprawy logicznemu systemowi i uzyskania wyniku zakończy się niepowodzeniem. Prawo jest ogólną definicją, którą należy dostosować do konkretnego przypadku. Często jest to trywialny, prosty proces, ale nie ma gwarancji, że jest i nie jest trywialny sposób zdefiniowania granicy.
Dobrym przykładem jest samoobrona. W większości systemów prawnych możesz legalnie skrzywdzić inną osobę, pod warunkiem że działasz w obronie własnej. Jednak sformułowanie jest wyraźnie zależne od kontekstu. Na przykład brytyjskie prawo karne pisze:
Osoba może użyć takiej siły, jaka jest uzasadniona w okolicznościach w celu zapobiegania przestępczości [...]
Orzecznictwo określa, co jest „uzasadnione” w konkretnych przypadkach , ale nie ma ogólnej definicji w książkach. Istnieje również orzecznictwo wyjaśniające, co dokładnie oznacza „zapobieganie przestępczości”. Ponieważ z definicji przestępstwo jeszcze nie miało miejsca, a tym bardziej sąd, który uznał, że działanie było w rzeczywistości przestępstwem, w tym konkretnym przypadku wystarczy rozsądne przekonanie , ale tak naprawdę nie jest zapisane w prawie!
Aby stworzyć cyfrowy podmiot decyzyjny na temat prawa, musisz go karmić nie tylko samym prawem, ale także całym orzecznictwem, dużą ilością rozumienia języka naturalnego i mnóstwem zasad dotyczących stosowania całej tej wiedzy, ponieważ czasami orzecznictwo jest solidne, czasem można je nagiąć (szczególnie jeśli jest ono stare, ponieważ interpretacje zmieniają się z czasem).
I wreszcie prawo zmienia się i dostosowuje, nie tylko w książce, ale także w jej interpretacjach. Istnieje wiele znanych przykładów sądów najwyższych, które uchylały swoją 20-letnią decyzję. Bardzo często takie wyzwania w stosunku do poprzedniego orzecznictwa zdarzają się dokładnie dlatego, że sędzia postanowił postępować wbrew ustalonym przepisom i wolałby raczej zostać unieważniony przed sądem wyższej instancji niż wydać decyzję, za którą nie stoi. Zastanawiam się, jak byś modelował tę umiejętność w systemie NP-zupełnym?
Aby obliczyć złożoność systemu, musimy zrozumieć dane wejściowe i wyjściowe. Prawo jest jednak systemem otwartym. Dosłownie wszystko w jego otoczeniu może na nią wpływać, zwłaszcza zmiany w społeczeństwie i kulturze. W większości krajów obowiązują przepisy dotyczące książek, które są już rzadko stosowane, ponieważ zmieniło się społeczeństwo, ale proces stanowienia prawa jest opóźniony. Akty prawne przeciwko homoseksualizmowi stanowią aktualny przykład. Albo wyrok śmierci, który w większości krajów nie był stosowany przez lata lub dekady, zanim został usunięty z ksiąg prawniczych. I nie dlatego, że nie było przypadków, w których można by go zastosować, ale po prostu dlatego, że sędziowie nie zastosowali go pomimo wyboru.
Te czynniki środowiskowe sprawiają, że oszacowanie złożoności jest prawie niemożliwe, ponieważ nie możemy wyliczyć ich na skończonej liście, chyba że zastosujemy wszystkie kwantory (np. „Każdy rodzaj ...” lub „cały ...”)