Skip to content
docs
Arxo ↗

Presumptions and fictions: pitfalls

For LLMs7 sections

Updated 3 October 2026: concept, except_when, claim, definition … sufficient, and default strength have been removed, together with their special deprecation diagnostic. References below to the former behavior and corpus sources are historical. New source uses relation, unless, duty, a strict rule, and defeasible.

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.

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.

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.

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.