Markdown for LLMs
LDC-E1331 — Duplicate anonymous assert
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E1331 — Duplicate anonymous assert
## What it means
An assertion without an explicit identifier is keyed by its own
content: the same normalized fact with the same provenance stated twice
collapses onto one identity, and the second statement cannot be told
apart from the first. The compiler stops at the repetition and asks
for an explicit identifier that separates the two.
The repair is to state the fact once, or to give each statement its own
identifier. Distinct facts keep distinct identities.
## Example
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation tall(t: Tenant) kind institutional;
const Joe: Tenant = entity_ref("urn:law:demo:diagnostics#Joe");
assert tall(Joe);
assert tall(Joe);
```
## Fix
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation tall(t: Tenant) kind institutional;
const Joe: Tenant = entity_ref("urn:law:demo:diagnostics#Joe");
assert tall(Joe);
```
## Engine message
The engine reports this in its own wording:
```text
example.law:9:1: error LDC-E1331: exact duplicate of an anonymous assert (the same normalized fact and provenance) or digest ambiguity: give an explicit `id` (§207)
```
## Related
- [Facts and evidence](/constructs/facts-and-evidence/) — facts and the identifiers that separate them.