Presumptions and fictions
Updated 3 October 2026:
concept,except_when,claim,definition … sufficient, anddefaultstrength have been removed, together with their special deprecation diagnostic. References below to the former behavior and corpus sources are historical. New source usesrelation,unless,duty, a strict rule, anddefeasible.
In one sentence: a presumption is a default holding until rebutted
(desugaring: a defeasible rule + an exception defeater/contrary rule +
priority), a fiction is an order to count one thing as another,
inferring an institutional fact (deem). The author takes a
presumption when the norm needs “counts as, unless proven otherwise” and an
explicit place for the burden of rebuttal; a fiction when “counts as
delivered/received” with no “if” at all.
The language specification treats a presumption as a default with a named burden of rebuttal — it expands into a defeasible rule, an exception, and priority — and a fiction as an order to count one thing as another, inferring an institutional fact.
1. When to use and when not to
Section titled “1. When to use and when not to”| Instead | Selection rule |
|---|---|
presumption vs definition | A definition is what a concept is (sufficient/necessary/exact); a presumption is what counts given a ground, until rebutted. A definition has no burden of rebuttal and no exception priority; a presumption has both. “Is” is a definition; “counts as, if” is a presumption |
presumption vs defeasible rule + unless | A presumption expands into exactly that, but with named nodes <name>/R1, /R2, … and a duty to show the expansion. A one-off exception is a bare rule with unless; a repeatable proof scheme (“burden on the carrier”) is a presumption |
presumption vs classification … defeasible | A classification supports a class or stays silent; a presumption carries an exception with priority. defeater as a classification strength is inadmissible: the class is either supported, or the exception is a separate rule |
fiction … deem vs rule … then | A fiction infers an institutional fact; the compiler warns if the fiction head is empirical. A fact about the world is a rule with an empirical head; a legal equation (“counts as received”) is a fiction. Strength (strict/defeasible) after the name is mandatory — the core does not pick it |
unless C vs unless C then not A | The bare form is a defeater against A (application beaten, Not established, not refuted); the contrary form is a defeasible not A rule with direct priority (victory, Refuted). Verified by runs: this section’s presumption with a bare unless answers Not established, not refuted, not Refuted |
2. Minimal example
Section titled “2. Minimal example”Package research.presumption.innocence: an accused counts as innocent until a final
conviction enters force.
presumption Innocence(p: Person) { when accused(p); presume innocent(p); unless final_conviction(p);}Case 01 facts: accused(ivan). Query: evaluate truth(innocent(ivan)).
Actual engine answer:
law test research.presumption.innocence: мир research.presumption.innocence ok [research.presumption.innocence#authored] tests/01-accused-presumed.lawtest / urn:query:research-presumption-01 ok [research.presumption.innocence#authored] tests/02-conviction-rebuts.lawtest / urn:query:research-presumption-02итого: 2 проверено, 2 прошли, 0 не прошли, 0 не исполнены; код 0law engine check — check OK, no warnings: the exception
final_conviction(p) binds p by a positive conjunct of the exception condition
itself (a variable bound only in the general rule’s when does
not count as bound).
Sensitivity: adding the final_conviction(ivan) fact changes the answer
from Established to Not established, not refuted (the conviction-rebuts test) — the
Innocence/R2 defeater beat the Innocence/R1 application.
Exactly Not established, not refuted, not Refuted: a bare unless C clause generates a
defeater, not a contrary rule; only unless … then not innocent(p)
would give the opposite conclusion (compare the EU261 corpus form below, where
the contrary clause is present).
Second package research.fiction.deemed_receipt — a service fiction: a document
delivered to the registration address counts as legally received on the
delivery date (deem legally_received(d, date)). Case 01 answers
Established, the case without the delivery fact — Not established, not refuted: a fiction
fires only from its premise, silence equates nothing. Runs — 2/2, check OK.
3. Example by domain
Section titled “3. Example by domain”- Law (EU): package
eu.transport.air_passenger_rights(EU air passenger rights, Regulation 261/2004) —presumption PassengerUninformedUnlessCarrierProves(see the corpus forms): the burden of proving notification is on the carrier, the exception is contrary (unless … then not passenger_treated_as_uninformed). An exemplary pair to the teaching example: it shows what distinguishes a bare clause from a contrary one. - Law (Germany): package
de.bgb.besitz_eigentum(German Civil Code, possession and ownership) —presumption VermutungDesEigentumsFuerDenBesitzer: possession as the ground of the ownership assumption. - Religion/custom: possession and causation presumptions in Islamic tort —
package
sa.civil_transactions.tort_enrichment(Saudi civil transactions, tort)presumption DirectActorCausedDamage. - Science (teaching doctrine): package
chem.rules(doctrine chemistry rules) —presumption ChloridePresumedSoluble: “counts as soluble until…” works outside law too. - Legal history: package
gb.corpus.calendar_act_1750(Calendar Act 1750, Great Britain) —fiction FairOrMartPreservesNaturalDay strict: a fair holds to the natural day — equation without “if”, a pure fiction.
4. How the engine answers
Section titled “4. How the engine answers”Table — actual runs of this section’s teaching packages:
| Facts | Question | Answer | Why |
|---|---|---|---|
accused | innocent | Established | the generated presume-rule Innocence/R1 fired |
accused, final_conviction | innocent | Not established, not refuted | the Innocence/R2 defeater beat the application; no contrary inference |
delivered(doc, date) | legally_received(doc, date) | Established | the fiction inferred the institutional fact |
| no facts | legally_received(doc, date) | Not established, not refuted | the fiction premise not established; equation from silence is not taken |
- Presumption desugaring: the defeasible
accused(p) => innocent(p)rule (/R1), the exception defeater/contrary rule (/R2, …), exception priority over the presumption. The compiler must show the expansion (in this research the expansion was not captured separately — the behaviour is stated from the language description). - Defeat: an application beaten by a defeater publishes no status literals; later strata do not see it.
- A fiction with an empirical head is a compiler warning; strength after the name is mandatory.
Exception chains and definition modes
Section titled “Exception chains and definition modes”An exception from an exception adds another unless clause to the
ordered rule chain. The chain edge works by closure, not by pair: the
“next link over previous” priority is generated
unconditionally and carries order to the transitive closure — without
the edge the later link would lose victory over the general rule, and the
case would answer Contradiction instead of Refuted. Surface syntax is allowed
only if the generated priority graph is acyclic.
Definition modes: necessary gives a necessary constraint; exact adds
a strict deriving rule. A definition does not apply contraposition: the
reverse direction becomes an inference only when the author writes a separate
rule. Generated nodes carry the was_derived_from provenance edge to the
qualification symbol.
5. Common mistakes
Section titled “5. Common mistakes”- The exception binds its variable only through the general rule’s
when—LDC-E4101on the generated node’s name: repeat the binding conjunct as the clause’s first premise (pitfalls, item 1). - Expecting Refuted from a bare
unless: a defeater gives Not established, not refuted (pitfalls, item 2). unlesson a strict rule is a static error: eitherdefeasible, or the exact applicability condition in the body (pitfalls, item 3).- A fiction with an empirical head is a warning; a fiction infers the institutional (pitfalls, item 4).
scope/effective/source-anchor/metadata in a presumption body isLDC-E0201in 0.1: the expansion is undefined, the rejection loud (pitfalls, item 5).
6. References
Section titled “6. References”- Neighbour pages: definitions, defeasible rules, constraints, priority.
- The pitfalls page lists the diagnostics (
LDC-E4101,LDC-E0201,LDC-E1302) with wrong forms and fixes.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.