Skip to content
docs
Arxo ↗

Priority: pitfalls

For LLMs9 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. Items marked “confirmed by runs” were reproduced during this research on the installed engine.

1. Answer Contradiction although “it is clear which norm is special” (confirmed by runs)

Section titled “1. Answer Contradiction although “it is clear which norm is special” (confirmed by runs)”

The core does not count speciality by number of conditions: without a declared priority, two defeasible opposite inferences are incomparable and both preserved. Reproduction: the research.priority.no_priority_both teaching package answers Contradiction on both facts; adding exactly one edge (package research.priority.special_over_general) changes the answer to Refuted. Detection: on Contradiction with two applicable opposite heads, look first for the missing edge, not for an engine defect.

2. Expected Refuted, got Not established, not refuted

Section titled “2. Expected Refuted, got Not established, not refuted”

A bare unless and a defeater remove support without asserting the opposite: after defeat the answer is Not established, not refuted, not Refuted. Refusal is written either in the contrary form unless C then not A or as a rule with a not A head and priority. Question check: “does the defeating side assert anything?” — no, so Refuted has nowhere to come from.

LDC-E4110: a strict rule has no exceptions, exception nodes are not generated (plus warning LDC-E1302 on non-lowering, if the form is written anyway). Fix: make the rule defeasible or move the applicability condition into the strict body.

LDC-E4105: source rank is defeasible with priority … reason lex_superior or priority policy, not strict. strict is inference strength, not act height: a strict norm of an ordinary regulation beats a defeasible norm of the constitution without any edge.

Two prefer clauses in one block or a block without prefer — LDC-E0201: the second edge is written as a separate declaration (model — the series of four edges over the art. 44 sanction limits). A side naming no package rule — LDC-E4108 and LDC-E1318: such priority never applies, silently. Priority between heads of different predicates — warning LDC-E4107: the heads never become complements, the edge is dead.

A statically known ring (A over B, B over A, including prefer A over A) — rejection LDC-E4104 already at check. A ring where at least one edge is conditional passes statics: at runtime the conflict group gets PRIORITY_CONFLICT, both sides preserved, no tie-break. Detection: Contradiction with edges in both directions — look at the conditional when clauses of the edges, not at the rules themselves.

7. Edge between same-polarity heads (warning, not rejection)

Section titled “7. Edge between same-polarity heads (warning, not rejection)”

Two applications are opposite only on complement heads, so two inferences of one relation never collide under any arguments — and an edge between them expresses nothing: warning LDC-E2142. Working forms: the general rule gets a guard, the special one an explicit defeater (priority over a defeater is alive — the only lawful case of matching polarity), or both stakes move into a decision table. Exception: an edge between links of an unless chain — it carries order to the transitive closure, not to the pair, and LDC-E2142 no longer sounds on it.

8. Defeater without a candidate; proviso with unbound variables

Section titled “8. Defeater without a candidate; proviso with unbound variables”

A defeater whose target is produced by no defeasible rule is a rejection LDC-E4112: targets from strict-only rules or with no producer cannot be attacked. A proviso binding not all head variables is LDC-E4101 on the generated rule name: repeat the binding conjunct as the clause’s first premise. Both in detail — the defeasible-rules pitfalls (items 1–2).

A defeater cancelling a valued literal with two or more defeasible producers of the predicate is warning LDC-E2144: matching values carry away another’s inference; cancel the valueless applicability relation instead (in detail — the defeasible-rules pitfalls, item 4).

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.