当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Catala: A Programming Language for the Law
arXiv - CS - Programming Languages Pub Date : 2021-03-04 , DOI: arxiv-2103.03198
Denis Merigoux, Nicolas Chataing, Jonathan Protzenko

Law at large underpins modern society, codifying and governing many aspects of citizens' daily lives. Oftentimes, law is subject to interpretation, debate and challenges throughout various courts and jurisdictions. But in some other areas, law leaves little room for interpretation, and essentially aims to rigorously describe a computation, a decision procedure or, simply said, an algorithm. Unfortunately, prose remains a woefully inadequate tool for the job. The lack of formalism leaves room for ambiguities; the structure of legal statutes, with many paragraphs and sub-sections spread across multiple pages, makes it hard to compute the intended outcome of the algorithm underlying a given text; and, as with any other piece of poorly-specified critical software, the use of informal language leaves corner cases unaddressed. We introduce Catala, a new programming language that we specifically designed to allow a straightforward and systematic translation of statutory law into an executable implementation. Catala aims to bring together lawyers and programmers through a shared medium, which together they can understand, edit and evolve, bridging a gap that often results in dramatically incorrect implementations of the law. We have implemented a compiler for Catala, and have proven the correctness of its core compilation steps using the F* proof assistant. We evaluate Catala on several legal texts that are algorithms in disguise, notably section 121 of the US federal income tax and the byzantine French family benefits; in doing so, we uncover a bug in the official implementation. We observe as a consequence of the formalization process that using Catala enables rich interactions between lawyers and programmers, leading to a greater understanding of the original legislative intent, while producing a correct-by-construction executable specification reusable by the greater software ecosystem.

中文翻译:

Catala:法律编程语言

普遍的法律是现代社会的基础,它使公民日常生活的许多方面得以编纂和管理。通常,法律会在各个法院和司法管辖区受到解释,辩论和挑战。但是在其他一些领域,法律几乎没有解释的余地​​,其本质是旨在严格描述计算,决策程序或简单地说是算法。不幸的是,散文对于这项工作仍然是一个严重不足的工具。缺乏形式主义留下了歧义的余地;法律法规的结构具有许多段落和小节,分布在多个页面上,因此很难计算给定文本基础上算法的预期结果;与其他任何未明确指定的关键软件一样,使用非正式语言也无法解决一些棘手的问题。我们介绍加泰罗尼亚语,一种新的编程语言,我们专门设计用于允许将成文法直接和系统地转换为可执行的实现。Catala旨在通过共享的媒介将律师和程序员聚集在一起,他们可以共同理解,编辑和发展,弥合通常会导致错误实施法律的空白。我们已经为Catala实现了编译器,并使用F *证明助手证明了其核心编译步骤的正确性。我们根据伪装成算法的几种法律文本对Catala进行评估,尤其是美国联邦所得税第121条和法国的拜占庭家庭福利。通过这样做,我们发现了官方实现中的错误。
更新日期:2021-03-05
down
wechat
bug