Presumptions and fictions: pitfalls
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.
Wrong forms, silent outcomes, LDC-E diagnostics, typical mistakes of
formalizers and AI agents, and how to detect them.
1. The exception does not bind its variables
Section titled “1. The exception does not bind its variables”The range-restriction requirement applies to the generated rule wholly and separately:
every variable of its head must be bound by a positive
established-conjunct of the exception condition itself; bound only in the general rule’s when
is not bound. The diagnostic is LDC-E4101 on the generated node’s name
(<presumption>/R2, …). The practical fix is repeating the binding
conjunct as the clause’s first premise: logically an identity (when the
general rule fires the premise is already true), while the variable moves
into bound inside the node with its own body.
2. A bare unless does not give Refuted
Section titled “2. A bare unless does not give Refuted”A bare clause generates a defeater: the application is beaten, there
are no inferences, the answer is Not established, not refuted. Proven by the section’s run:
case 02 of the innocence teaching package answers Not established, not refuted, not Refuted.
Whoever expected established absence of innocence writes unless … then not innocent(p) (contrary form: a defeasible rule with direct priority). The
mistake is silent: law test is green, the meaning is wrong.
3. unless on a strict rule is a static error
Section titled “3. unless on a strict rule is a static error”The author either makes the rule defeasible or moves the exact
applicability condition into the strict body so no defeat is needed.
For a genuinely strict contrary inference — a separate explicit strict
rule; the linter demands a rationale. The AI agent appending unless to a
strict rule “for completeness” gets a rejection, not a warning.
4. A fiction with an empirical head
Section titled “4. A fiction with an empirical head”A fiction infers an institutional fact; the compiler warns if the head
relation has empirical kind. A fact about the world (“delivered”)
is a rule; a legal equation (“counts as received”) is a fiction. A mixed-up
kind is a silent level confusion: the inference looks like a world fact but
proves as an institution.
5. Foreign clauses in a presumption body — a loud rejection
Section titled “5. Foreign clauses in a presumption body — a loud rejection”scope, effective, source anchors, and expansion metadata have no expansion
in presumption semantics: in 0.1 the implementation must reject them statically
(LDC-E0201), not lower the presumption without them. Same for fiction, classification, and definition:
source anchors and metadata in their bodies are LDC-E0201. The
rejection is loud by design: a presumption applied wider than written is
worse than a rejection.
6. Rules and exception chains
Section titled “6. Rules and exception chains”Write exceptions with the unless clause; the order of multiple
clauses defines the priority chain (§150). Choose a defeasible rule when
its conclusion may be defeated.
7. A chain without an edge gives Contradiction
Section titled “7. A chain without an edge gives Contradiction”Two contrary clauses with one conclusion (unless C1 then not A; unless C2 then not A) share an identical head literal — that pair is not
opposite to each other, and defeat gives it no victory. The
chain edge carries order to the transitive closure, not to itself: without it, a
case where only the later link fires answers Contradiction instead of Refuted.
Detection: run a case with one late link; Contradiction where Refuted was
expected is a lost edge.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.