docs← Back to article

Markdown for LLMs

LDC-E3101 — A fact recorded before it was observed

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# LDC-E3101 — A fact recorded before it was observed

## What it means

Assertions and evidence at top level, in facts, cases and given blocks can
carry two temporal values: when the fact was observed in the
world and when it entered the record. Time runs one way — observation comes
first, the record second. When the record predates the observation at the
same precision, either the two fields were swapped or the entry is
backdated, and the engine warns at the assertion.

This is a warning, not a refusal: the package still checks. Swapping the
two dates or correcting the wrong one clears it. Instants with explicit offsets are compared as UTC instants, preserving
fractional seconds. Values without an explicit offset and values at different
precisions stay silent — their order is settled by policy the statics do
not carry.

## Example

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity A;
relation p(a: A) kind institutional;
assert p(entity_ref("urn:x:ann")) { observed @2026-08-25; recorded @2026-08-20; }
```

## Fix

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

entity A;
relation p(a: A) kind institutional;
assert p(entity_ref("urn:x:ann")) { observed @2026-08-20; recorded @2026-08-25; }
```

## Engine message

The engine reports this in its own wording:

```text
example.law:7:37: warning LDC-E3101: observed @2026-08-25 is later than recorded @2026-08-20 (§196) — the fact was recorded before it was observed
```

## Related

- [Facts and evidence](/constructs/facts-and-evidence/) — what an assertion carries.