Skip to content
docs
Arxo ↗

LDC-E4110 — An exception on a strict rule

For LLMs5 sections

A strict conclusion is not defeasible, so an exception clause on a strict rule has nothing to defeat: the exception mechanism lifts by defeat, and there is no defeat to lift with. The compiler stops at the exception keyword and refuses the rule.

Either make the rule defeasible, or carry the exact applicability condition into the strict body so no exception is needed.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity A;
relation p(a: A) kind institutional;
relation q(a: A) kind institutional;
relation s(a: A) kind institutional;
rule r1 strict { for a: A; when p(a); unless s(a); then q(a); }
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity A;
relation p(a: A) kind institutional;
relation q(a: A) kind institutional;
relation s(a: A) kind institutional;
rule r1 defeasible { for a: A; when p(a); unless s(a); then q(a); }

The engine reports this in its own wording:

Output
example.law:9:39: error LDC-E4110: r1: `unless` on a strict rule (§149) — make the rule defeasible or move the applicability condition into the strict body

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

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