LDC-E2115 — An undeclared name in an interval bound
For LLMs5 sections
What it means
Section titled “What it means”An interval bound is a value position: it must be a literal, a bound rule variable, a declared constant, an enum member, or a parameter — never a bare unknown name. A name with no binding in any of those places is a free variable, and the compiler rejects it at the bound.
Binding the name with a rule variable plus a premise that yields it, or replacing it with a literal floor date for a deliberately open window, resolves it. Either way the bound ends up a genuine value.
Example
Section titled “Example”language "law.core" version "0.2";package demo.diagnostics version "0.1.0";namespace "urn:law:demo:diagnostics";
entity Person;relation active(p: Person) kind empirical;relation held(p: Person) kind institutional;rule R strict { for p: Person; when active(p); then duty D { bearer p; goal maintenance { condition held(p); window [moment, infinity); } };}language "law.core" version "0.2";package demo.diagnostics version "0.1.0";namespace "urn:law:demo:diagnostics";
entity Person;relation active(p: Person) kind empirical;relation started(p: Person, since: Date) kind empirical;relation held(p: Person) kind institutional;rule R strict { for p: Person; for moment: Date; when active(p) and started(p, moment); then duty D { bearer p; goal maintenance { condition held(p); window [moment, infinity); } };}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.