Priority: 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. 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.
3. unless on a strict rule
Section titled “3. unless on a strict rule”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.
4. Priority over a strict rule
Section titled “4. Priority over a strict rule”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.
5. Edge form violated
Section titled “5. Edge form violated”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.
6. Priority ring
Section titled “6. Priority ring”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).
9. Cancellation of a valued literal
Section titled “9. Cancellation of a valued literal”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.