Markdown for LLMs
LDC-E1349 — Completed names no instance
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E1349 — Completed names no instance
## What it means
The `completed` predicate asks about a finished production, and a
production belongs to someone: the two-place shape names the procedure
and the instance whose completion is meant. The one-place shape names
no instance, and a silent "any instance" would turn true after the
fact — so the compiler stops at the call.
The repair is to name both: the procedure and the instance. A complete
question answers exactly as asked.
## Example
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation done(t: Tenant) kind institutional;
procedure Review(t: Tenant) {
state Open initial;
state Closed terminal;
transition Decide {
from Open;
to Closed;
}
}
rule Flag defeasible {
for t: Tenant;
when completed(t);
then done(t);
}
```
## Fix
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation done(t: Tenant) kind institutional;
procedure Review(t: Tenant) {
state Open initial;
state Closed terminal;
transition Decide {
from Open;
to Closed;
}
}
rule Flag defeasible {
for t: Tenant;
when completed(Review, t);
then done(t);
}
```
## Engine message
The engine reports this in its own wording:
```text
example.law:17:10: error LDC-E1349: `completed(P)` §163 does not name a procedure instance: an arity-one predicate does not say WHOSE production is complete (§163, §161.2, §163.1)
```
## Related
- [Procedures](/constructs/procedure/) — productions and the instances they belong to.