The Same Debt, Two Centuries: The Napoleonic Code Runs From 1804 to Today
A debt fell due on 1 January 2000 and was sued on 1 January 2015. Under the text of 1804 the action is alive. Under today's Code it is time-barred. Both answers come from the articles, with the chain of reasoning and a hash anyone can recompute.

The French Civil Code is the most recognisable legal text in the world. It has been in force since 21 March 1804, it has been rewritten many times without ever being replaced, and every civil lawyer from Paris to Buenos Aires has an opinion about it. It is now also an executable model: the articles in force, pinned byte for byte to the official open data, plus the original text of 1804 as a text of its own, answering questions with the article they rest on. The hub is public at code-civil.law.arxo.io.
This article shows what that means on three cases and one reform, and then says exactly how much of the Code is covered and how to check it.
One debt, two texts
Take one claim and one filing. The debt became enforceable on 1 January 2000; the creditor sued on 1 January 2015; nothing interrupted the period in between. The same three facts are read by two texts.
The Code of 1804. Article 2262, in its original wording, prescribes all actions, real and personal, by thirty years. Thirty years from 1 January 2000 end on 1 January 2030. The action of 2015 is not time-barred. The model answers refuted to the question "is the action prescribed on 1 January 2015?", and the deciding rule cites article 2262.
Today's Code. The reform of 17 June 2008 replaced the thirty-year rule with the five-year period of article 2224. For debts that already existed, article 26 II of the reform statute says the shorter period runs from the day the statute entered into force, 19 June 2008, without the total ever exceeding the former duration. Five years from 19 June 2008 end on 19 June 2013. The action of 2015 is time-barred. The model answers established, and the deciding rule cites article 26 II together with article 2224.
The collection behind the page holds three fact patterns, each under both texts: six files, eighteen questions. Change one fact and the answers move exactly as the articles say they should.
- The debtor acknowledges the debt on 1 January 2012. Under 1804, article 2248 interrupts the period and a new thirty years begin. Under today's Code, articles 2240 and 2231 interrupt it and a new five years run from 2012, so the action of 2015 is in time under both texts.
- The debt dates from 1 January 1975 and the action from 1 January 2004. Both texts agree the action is alive. The thirty-year cap of the old law would expire on 1 January 2005, earlier than five years from the 2008 reform, and article 26 II never lets the new period run past the old one. The transition rule protects the debtor from being caught by a period that would have ended sooner anyway.
Every one of the eighteen answers is checked in three ways before it reaches the page: against expectations written from the article text, between two independent evaluators of the same model that must produce byte-identical documents, and by replaying the saved answer. The page does not pick a winner between 1804 and today. It shows two texts and what each of them does with the same facts.
A family, two centuries
The second case is an estate. A widow, two sons, and, when the second son dies first, a grandchild. Each pattern is read by the Code of 1804 and by the living Code.
In 1804, children take by equal shares and by head under article 745, and the surviving spouse takes nothing by intestacy while relatives exist, under article 767. Two sons: one half each; the widow, nothing. Today the surviving spouse chooses under article 757 between the usufruct of the whole estate and ownership of one quarter; with the quarter taken, the sons share the rest by head under article 753, three eighths each. When the second son has died first, his child takes his place by representation in both texts: one half in 1804, three eighths today.
The model does not execute the intermediate reforms of 1891, 1972 or 2001. An estate opened on 31 December 2006 is shown under the former law with a boundary that names the transitional article. That boundary is an answer, not a gap: the reader is told which text applies and why the shares displayed are today's.
The impact study the 2016 reform never had
The contract-law reform of 10 February 2016 was made by ordinance, not by a bill, so it never had the impact study that the organic law of 2009 requires of government bills. The ratification statute of 20 April 2018 then rewrote nine of the "new" articles and declared changes to twelve others interpretative.
The hub carries the study after the fact. Eighteen fictional contracts exercise the nine rewritten articles: contracts concluded before and after 1 October 2016, clauses that the 2018 wording treats differently, a hardship claim under article 1195. The world "before 2018" is not a hand-written copy of the old law: it is built by mutating the transition corridor of the model, removing the ratification statute and nothing else. Twenty-eight questions are then asked in both worlds. In ten of them the outcome changes; in eighteen it does not, and the page says which article makes the difference in each row.
Everything on that page is recomputed in the browser from the pinned bytes. A "Recalculate" button rebuilds the answers and compares the hash with the one printed on the page. On the current build they match.
What the model refuses to decide
An executable Code is not a Code that decides everything. Where the text calls for an assessment, the model returns a request for the court's finding, with the article that asks for it. Fault under the law of civil liability is the standard example: in the cross-package case on fault and reparation, the question of liability comes back as requires judgment, while the question of prescription on the same facts comes back as established, because the first needs a finding of fault and the second needs only dates.
Boundaries are declared in the same way. Contract law before 1 October 2016 is outside the model; the page says "the frontier of the model, not an absence of law". Decrees, procedure, and matters delegated to other statutes are recorded article by article with the reason they are not executed. None of this is hidden in a footnote: a reader who asks the model a question outside its area gets the boundary and its reason, not silence.
How much of the Code runs
The hub is built on the LEGI open data published by the DILA under the Licence Ouverte 2.0, with a legal cut-off of 16 September 2026. The area closed on 18 September 2026 covers fourteen packages and 2,196 articles in force, from the preliminary title through obligations, contracts, special contracts, securities, property, successions, gifts and wills, matrimonial regimes, family, and the Mayotte provisions. Two further packages, persons and sale-and-lease, are outside the closed area and run their own scenarios.
Every article in the closed area carries a status. Of the 2,196, 1,590 are executable; 606 are pinned with a declared reason for not executing, such as a judicial channel, an external act, a decree or a procedural rule; one is pinned to its text without a rule of its own; none is unexplained. Below the article, 4,123 paragraphs are classified individually as rule, judicial channel, boundary or external reference.
Four packages are executable article for article: contracts (151 of 151), obligations (162 of 162), gifts and wills (233 of 233) and securities (223 of 223). Family law is the other extreme, 52 of 395, because most of its articles route to a judge, a civil-status officer or a decree, and the model says so for each of them rather than pretending to compute a divorce.
How to check any of it
Each answer page carries the facts, the question, the status, the chain of rules down to the article, and the hash of the evaluation document. The Verify page reloads a saved answer and recomputes it in the browser; it either matches or shows where it does not. The text reader shows the current LEGI text and the 1804 text with the modelled provisions highlighted. The date calculators count limitation periods and forced-heirship shares from dates the reader supplies. Two evaluators of the same model, one in Rust and one in Python, must produce the same bytes for every scenario in the corpus before a build ships.
Earlier work put parts of civil codes into logic programs, PROLEG on the Japanese Civil Code being the best known, and Catala has shown how far verified compilation carries French tax and benefit law. What the Code civil hub adds is the Code itself as a running canon: the text in force and the text of 1804, pinned to their official bytes, answering with articles from both.
Arxo executes the canon. Models formalize; Arxo executes and proves.
Sources: Code civil, articles 2224, 2231, 2240, 745, 753, 757, 767, 1195 and article 2262 in its 1804 wording, LEGI open data, DILA, Licence Ouverte 2.0; loi n° 2008-561 du 17 juin 2008, article 26; ordonnance n° 2016-131 du 10 février 2016; loi n° 2018-287 du 20 avril 2018, article 16; Satoh et al., "PROLEG: An Implementation of the Presupposed Ultimate Fact Theory of Japanese Civil Code by PROLOG Technology", JSAI-isAI 2010; Merigoux, Chataing, Protzenko, "Catala: A Programming Language for the Law", ICFP 2021. Hub: code-civil.law.arxo.io.