# 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.