Ini pertanyaan yang sangat menarik.
Hukum ada di suatu tempat antara bahasa sehari-hari dengan aturannya yang sewenang-wenang, terus berubah, dan sering kali lunak, dan bahasa pemrograman dengan aturannya yang sangat spesifik dan terdefinisi.
Legalese sebenarnya mendefinisikan istilah-istilahnya dan dengan demikian banyak kata (tetapi tidak semua!) Yang digunakan dalam hukum sebenarnya memiliki makna yang tepat.
Namun, interpretasi adalah di mana pendekatan Anda dalam menyajikan kasus ke sistem logis dan mendapatkan hasilnya akan gagal. Undang-undang adalah definisi umum yang perlu disesuaikan dengan kasus spesifik yang dipermasalahkan. Seringkali ini adalah proses yang mudah dan sepele, tetapi tidak ada jaminan bahwa itu dan tidak ada cara yang tidak sepele untuk mendefinisikan batas.
Contoh yang baik adalah pertahanan diri. Dalam kebanyakan sistem hukum, Anda dapat melukai orang lain asalkan Anda bertindak membela diri. Namun, kata-katanya secara eksplisit peka konteks. Sebagai contoh, hukum pidana Inggris menulis:
Seseorang dapat menggunakan kekuatan seperti itu wajar dalam situasi dalam pencegahan kejahatan [...]
Hukum kasus mendefinisikan apa yang "masuk akal" dalam kasus-kasus tertentu , tetapi tidak ada definisi umum tentang buku-buku tersebut. Ada juga hukum kasus yang menjelaskan apa sebenarnya arti "pencegahan kejahatan". Karena definisi kejahatan belum terjadi, apalagi pengadilan memutuskan bahwa tindakan itu, pada kenyataannya, kejahatan, kepercayaan yang cukup sudah cukup dalam kasus khusus ini, tetapi itu sebenarnya tidak tertulis dalam hukum!
Untuk membuat pembuat keputusan digital tentang hukum, Anda harus memberinya bukan hanya hukum itu sendiri, tetapi juga semua hukum kasus, banyak pemahaman bahasa alami, dan banyak aturan tentang cara menerapkan semua pengetahuan itu, karena kadang-kadang hukum kasus itu solid, kadang-kadang Anda bisa membengkokkannya (terutama jika sudah tua, karena interpretasi berubah seiring waktu).
Dan akhirnya, hukum berubah dan beradaptasi, tidak hanya dalam buku, tetapi juga dalam interpretasinya. Ada banyak contoh terkenal dari pengadilan tertinggi yang menolak keputusan mereka sendiri yang berusia 20 tahun. Sangat sering, tantangan seperti itu terhadap hukum kasus sebelumnya terjadi justru karena seorang hakim memutuskan untuk melawan hukum-hukum yang sudah ada dan ia lebih suka mengambil risiko ditolak di pengadilan yang lebih tinggi daripada menjatuhkan keputusan yang tidak ia tahan. Saya bertanya-tanya bagaimana Anda akan memodelkan kemampuan ini dalam sistem NP-complete?
Untuk menghitung kompleksitas suatu sistem mengharuskan kita untuk memahami input dan output. Namun, hukum adalah sistem terbuka. Secara harfiah apa pun di lingkungannya dapat memengaruhinya, terutama perubahan pada masyarakat dan budaya. Sebagian besar negara memiliki undang-undang tentang buku-buku yang jarang diterapkan lagi karena masyarakat telah berubah, tetapi proses pembuatan undang-undang tertinggal. Hukum melawan homoseksualitas adalah contoh saat ini. Atau hukuman mati, yang di sebagian besar negara belum benar-benar diterapkan selama bertahun-tahun atau dekade sebelum dihapus dari buku-buku hukum. Dan bukan karena tidak ada kasus di mana itu bisa diterapkan, tetapi hanya karena hakim tidak menerapkannya meskipun memiliki pilihan.
Faktor-faktor lingkungan ini membuat perkiraan kompleksitas hampir tidak mungkin, karena kita tidak dapat menghitungnya dalam daftar terbatas kecuali kita menggunakan semua-kuantor (mis. "Setiap jenis ..." atau "semua ...")