Skip to content
docs
Arxo ↗

LDC-E4105 — A priority over a strict rule

For LLMs5 sections

Priorities run between defeasible rules only: strict rules state logical consequences, not preferences, and no ordering can prefer one consequence over another. Naming a strict rule on either side of a priority edge asks the ordering to do what the category forbids. The compiler refuses the edge at the priority.

The fix takes the strict rule out of the edge — restate the choice between defeasible rules, or drop the edge if the strict conclusion was meant to stand unconditionally. Edges between two defeasible rules stay silent.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
relation p(x: Text) kind institutional;
relation q(x: Text) kind institutional;
relation r(x: Text) kind institutional;
rule D1 defeasible { for x: Text; when q(x); then p(x); }
rule S1 strict { for x: Text; when q(x); then r(x); }
priority P1 { prefer S1 over D1; }
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
relation p(x: Text) kind institutional;
relation q(x: Text) kind institutional;
relation r(x: Text) kind institutional;
rule D1 defeasible { for x: Text; when q(x); then p(x); }
rule S1 strict { for x: Text; when q(x); then r(x); }

The engine reports this in its own wording:

Output
example.law:10:10: error LDC-E4105: priority over strict rule "S1" — error (§192/§114: strict is a logical category, priorities run between defeasible)

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

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