Це дуже цікаве питання.
Закон знаходиться десь між повсякденною мовою з її довільними, постійно мінливими і часто м'якими правилами, та мовою програмування з її дуже специфічними, визначеними правилами.
Legalese фактично визначає його терміни, і тому багато слів (але не всіх!), Що використовуються в законі, насправді мають точне значення.
Однак інтерпретація полягає в тому, що ваш підхід представити справу до логічної системи та отримати результат буде невдалим. Закон - це загальне визначення, яке необхідно адаптувати до конкретного конкретного випадку. Часто це тривіальний, прямолінійний процес, але немає гарантії, що це є і немає нетривіального способу визначення межі.
Хороший приклад - самозахист. У більшості правових систем ви можете законно поранити іншу людину за умови, що ви працюєте в самозахисті. Однак формулювання явно залежно від контексту. Наприклад, британський кримінальний закон пише:
Людина може використовувати таку силу, яка розумна в обставинах для запобігання злочинності [...]
Прецедентне право визначає, що є "розумним" у конкретних випадках , але загального визначення у книгах немає. Існує також судова практика, яка роз'яснює, що саме означає "запобігання злочинності". Оскільки за визначенням злочину ще не було, тим більше суд вирішив, що ця дія насправді є злочином, достатньо розумного переконання в даному конкретному випадку, але це фактично не передбачено законом!
Щоб створити цифрового органу, який приймає рішення про закон, вам доведеться подавати його не лише сам закон, а й все прецедентне право, багато розуміння природної мови та безліч правил щодо того, як застосовувати всі ці знання, оскільки інколи судова практика є твердою, іноді її можна зігнути (особливо якщо вона стара, оскільки інтерпретації змінюються з часом).
І нарешті, закон змінюється та адаптується не лише в книзі, а й у її тлумаченнях. Існує безліч відомих прикладів того, як вищі суди відмовили у власному 20-річному рішенні. Дуже часто подібні виклики попередньому прецедентному праву трапляються саме тому, що суддя вирішив піти проти цих встановлених законів, і він скоріше ризикне бути відхиленим у вищому суді, ніж винести рішення, яке не стоїть позаду. Цікаво, як би ви змоделювали цю здатність у системі, що не має повного NP?
Для обчислення складності системи вимагає розуміння входів та виходів. Однак закон є відкритою системою. Буквально все, що в його оточенні, може впливати на це, особливо зміни на суспільство та культуру. Більшість країн мають закони про книги, які вже рідко застосовуються через те, що суспільство змінилося, але процес законотворчості відстає. Закони проти гомосексуалізму є сучасним прикладом. Або смертний вирок, який у більшості країн фактично не застосовувався роками чи десятиліттями до того, як його вилучили із законів. І не тому, що не було випадків, коли це можна було застосувати, а просто тому, що судді не застосовували його, незважаючи на вибір.
Ці фактори навколишнього середовища роблять оцінку складності майже неможливою, оскільки ми не можемо перерахувати їх у кінцевому списку, якщо не будемо використовувати цілі квантори (наприклад, "всі види ..." або "всі ...")