Catala: A Programming Language for the Law - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Proceedings of the ACM on Programming Languages Year : 2021

Catala: A Programming Language for the Law


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 subsections 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, natural 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 too 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 of the French benefits. 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. Doing so, Catala increases trust in legal institutions, and mitigates the risk of societal damage due to incorrect implementations of the law.
Fichier principal
Vignette du fichier
paper.pdf (686.17 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-03159939 , version 1 (04-03-2021)
hal-03159939 , version 2 (03-07-2021)



Denis Merigoux, Nicolas Chataing, Jonathan Protzenko. Catala: A Programming Language for the Law. Proceedings of the ACM on Programming Languages, 2021, 5 (ICFP), pp.77:1-29. ⟨10.1145/3473582⟩. ⟨hal-03159939v2⟩
1226 View
1350 Download



Gmail Facebook Twitter LinkedIn More