Markdown for LLMs
LDC-E4703 — A rule deriving a protected predicate
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E4703 — A rule deriving a protected predicate
## What it means
A protected predicate names the facts the acceptance phase guards: such
a fact enters support only through an accepted support, never straight
from a rule head. A rule deriving a protected predicate short-circuits
that guard, and the compiler refuses the rule at the policy — even when
the rule itself stands on the phase list.
Drop the derivation, or guard a different predicate.
## Example
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Thing;
relation paid(t: Thing) kind empirical;
relation settled(t: Thing) kind institutional;
relation ev_edge(edge: Text, doc: Text, link: Text) kind empirical;
relation accepted_support(edge: Text) kind institutional;
rule Mint strict { for t: Thing; when settled(t); then paid(t); }
rule Judge strict { for edge: Text; for doc: Text; when ev_edge(edge, doc, "supports"); then accepted_support(edge); }
evidence policy EvpV1 {
profile "law.core.evidence-policy/0.1";
accepts accepted_support;
protects paid;
input edge ev_edge;
rule Judge;
}
```
## Fix
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Thing;
relation paid(t: Thing) kind empirical;
relation settled(t: Thing) kind institutional;
relation ev_edge(edge: Text, doc: Text, link: Text) kind empirical;
relation accepted_support(edge: Text) kind institutional;
rule Mint strict { for t: Thing; when paid(t); then settled(t); }
rule Judge strict { for edge: Text; for doc: Text; when ev_edge(edge, doc, "supports"); then accepted_support(edge); }
evidence policy EvpV1 {
profile "law.core.evidence-policy/0.1";
accepts accepted_support;
protects paid;
input edge ev_edge;
rule Judge;
}
```
## Engine message
The engine reports this in its own wording:
```text
example.law:12:1: error LDC-E4703: evidence policy urn:law:demo:diagnostics#EvpV1: rule urn:law:demo:diagnostics#Mint derives a protected predicate urn:law:demo:diagnostics#paid — a protected fact enters support only via an accepted support (§78.2.4)
```
## Related
- [Facts and evidence](/constructs/facts-and-evidence/) — what an assertion carries.