Catala: A Programming Language for the Law

03/04/2021
by   Denis Merigoux, et al.
0

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.

READ FULL TEXT

page 24

page 28

page 29

page 30

page 31

research
06/15/2016

Constitutional Precedent of Amicus Briefs

We investigate shared language between U.S. Supreme Court majority opini...
research
09/13/2020

Deconstructing Legal Text_Object Oriented Design in Legal Adjudication

Rules are pervasive in the law. In the context of computer engineering, ...
research
09/07/2022

Algorithmic Learning Foundations for Common Law

This paper looks at a common law legal system as a learning algorithm, m...
research
10/15/2021

Law Smells: Defining and Detecting Problematic Patterns in Legal Drafting

Building on the computer science concept of code smells, we initiate the...
research
01/16/2023

Towards an Automatic Consolidation of French Law

We present preliminary results about Legistix, a tool we are developing ...
research
02/15/2022

Algorithmic audits of algorithms, and the law

Algorithmic decision making is now widespread, ranging from health care ...
research
09/19/2023

Dialogues with algorithms

In this short paper we focus on human in the loop for rule-based softwar...

Please sign up or login with your details

Forgot password? Click here to reset