Markdown for LLMs
LDC-E4110 — An exception on a strict rule
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E4110 — An exception on a strict rule
## What it means
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.
## Example
```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); }
```
## Fix
```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); }
```
## Engine message
The engine reports this in its own wording:
```text
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
```
## Related
- [Strict rules](/constructs/rule-strict/) — what a strict conclusion guarantees.
- [Defeasible rules](/constructs/rule-defeasible-unless/) — how exceptions defeat a conclusion.