# Comparisons Arxo is an executable-knowledge system: norms written as rules, answers with grounds you can recheck. It is not the only tool in that space. This section maps twenty systems and formats that overlap with it — what each one is for, where the overlap lies, how the answers differ, and what has actually been checked so far. There is no winner here. Each page names the reader it helps, the profile that was studied, and the state of the evidence. Where a comparative run has not happened, the page says so plainly. ## How to read this section Every direction page carries an **evidence passport**: the date its sources were checked, the version or profile studied, what the comparison rests on, and whether anything was executed. Three labels appear throughout: - **Confirmed by documentation** — a property read in the official docs, the pinned sources, a standard, or a paper. - **Checked by execution** — a property observed in an actual run, with the version and the run attached. Used sparingly in this first release. - **Protocol prepared; comparative run not performed** — the experiment is designed, frozen, and reproducible, but neither side has been run yet. Expected outcomes in such protocols are predictions from the text, not results. Two outcome words need a gloss. A case marked **not comparable** means the two sides answer different questions (different stages, units, editions, or purposes) — it is a limit of the comparison, not a failure of either side. A **mismatch** means both sides answered the same question differently, with the cause still open until a source settles it. Agreement on a bank of cases is never presented as proof that two languages are equivalent. The [methodology](/comparisons/methodology/) page explains the setup: contracts, reproducibility, outcome classes, and the shared scenarios. ## Across systems Some questions cut across directions. These pages answer them once: - [Capability matrix](/comparisons/matrix/) — twenty systems and Arxo, property by property: missing facts, conflicts, time, deontic positions, explanations, engineering, and the machine author. Only properties confirmed in the studied sources are filled in. - [Classic problems of normative reasoning](/comparisons/classic-problems/) — thirteen textbook problems, from Tweety to the burden of proof: how Arxo writes each one and which systems here address it natively. - [Measurements](/comparisons/measurements/) — the runs that were actually executed: the Catala parity run, a US tax code run with language models, and science tasks with and without tools. - Shared scenarios — [one contract, four systems](/comparisons/contract-lifecycle/), [one charities text, five systems](/comparisons/jersey-charities/), and [explaining yes, no, and unknown](/comparisons/explanations/). - [Beyond law](/comparisons/beyond-law/) — runs against canons outside legal texts: a language test suite, computer algebra, a proof-assistant kernel, and tournament pairing. Several directions also have a companion page: a write-up of an executed run ([Catala](/comparisons/catala-parity-run/), [LLM / RAG](/comparisons/llm-rag-irc-run/)), a case bank ([L4](/comparisons/l4-charities-case-bank/)), or a guide for developers coming from another system ([OPA](/comparisons/coming-from-opa/), [Cedar](/comparisons/coming-from-cedar/), [DMN](/comparisons/coming-from-dmn/), [Drools](/comparisons/coming-from-drools/)). ## By task ### Computing amounts from normative texts - [Catala](/comparisons/catala/) — executable tax and benefit rules written next to the statute text, with exact money and date handling. - [OpenFisca](/comparisons/openfisca/) — mass microsimulation of taxes and benefits over dated parameters, built for reform comparison. - [M / Mlang](/comparisons/mlang/) — the compiler behind the French income-tax computation, with a mechanically checked core. - [PolicyEngine](/comparisons/policyengine/) — household tax-benefit simulation with dated parameters and one-step reforms. - [RegelRecht](/comparisons/regelrecht/) — executable Dutch agency regulations kept next to the article text, with test scenarios beside the law. ### Drawing normative and logical conclusions - [Logical English](/comparisons/logical-english/) — norms written in controlled natural language, explained in the words of the source sentences. One of three separate Prolog-family approaches studied here. - [PROLEG](/comparisons/proleg/) — legal reasoning from Japan's presumed-fact theory, where the burden of proof decides the unproven fact. - [Blawx](/comparisons/blawx/) — visual block authoring over an answer-set engine, strong on explaining negative answers and hypotheticals. - [L4](/comparisons/l4/) — isomorphic rules with typed duties and permissions; also listed under contracts for its deontic core. ### Authorization and business rules - [OPA / Rego](/comparisons/opa/) — decoupled policy decisions for services and infrastructure, with bundles, logs, and strict checks. - [Cedar](/comparisons/cedar/) — small verified authorization core where a prohibition always wins and the answer names the deciding policies. - [DMN](/comparisons/dmn/) — the standard decision table, portable across engines; the named hit policy decides what overlap means. - [Drools / DRL](/comparisons/drools/) — a stateful rule engine with working memory, incremental re-evaluation, and event streams. ### Contracts and the obligation lifecycle - [Accord / Cicero](/comparisons/accord/) — a contract clause as template text plus data model plus executable logic, with events out. - [Symboleo](/comparisons/symboleo/) — obligations and powers over an event account, checked exhaustively by a model checker. - [Stipula](/comparisons/stipula/) — contracts as programs with state-gated calls, linear assets, and non-cancellable timeouts. - [L4](/comparisons/l4/) — listed here too for its duties, permissions, and their fulfilment over event streams. ### Representing documents and exchanging models - [LegalRuleML](/comparisons/legalruleml/) — the interchange standard for norms: what survives a transfer, what needs extensions, what is lost. - [Akoma Ntoso](/comparisons/akoma-ntoso/) — markup of acts and their editions, and the round trip between marked text and pinned sources. ### Interviews and working with text through a language model - [docassemble](/comparisons/docassemble/) — guided interviews that gather facts and assemble the resulting document. - [LLM / RAG](/comparisons/llm-rag/) — three fixed architectures compared on one held-out bank: model with text, model with retrieval, model with an executable model behind tools. Arxo itself assumes models write formalizations, so this is not Arxo versus an abstract machine mind. ### Beyond law - [Beyond law](/comparisons/beyond-law/) — runs against executable canons outside legal texts. - [WebAssembly: the i32 spec-tests run](/comparisons/wasm-spec-tests-run/) — integer values and traps against the official test script. - [Computer algebra: the textbook-steps run](/comparisons/computer-algebra-run/) — textbook rules against SymPy and Wolfram. - [Lean: the divisibility-instances run](/comparisons/lean-run/) — applied theorems against kernel proofs. - [FIDE: the Dutch-pairing check run](/comparisons/fide-pairing-run/) — presented pairings against an endorsed pairing tool. ## Relation to the research tree Each page rests on a direction under `experiments/comparisons/` in the project repository: a research report, a source bibliography with check dates, and a frozen experiment protocol. The tree currently holds exactly the twenty directions above — no more, no less. Three shared scenarios (one contract lifecycle, one charities text across five systems, one explanation comparison) feed the methodology and the scenario sections; they are not separate alternatives, and each has its own page under [Across systems](#across-systems). Experiment templates in the tree are infrastructure, not pages. The related tutorial stays where it is: [Coming from Catala](/language/coming-from-catala/) teaches the concept mapping hands-on, while [Catala](/comparisons/catala/) records what the comparison program has and has not established. ## Growing the section A new result lands in three moves: the experiment runs and its outcome table is filled in the research tree, the direction page gains a dated results section with a link to the run, and the passport line is updated. Addresses are stable: one direction keeps one main page; a run write-up, a case bank, or a guide lands as a companion page next to it, and the main page links to it instead of moving.