Markdown for LLMs
Reconciliation with the pinned edition
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Reconciliation with the pinned edition
In the first tutorial we declared a fragment and its `content_hash`. The
compiler verified the hash against the text **in the file itself** — i.e.
that the formaliser did not diverge from herself. Nothing was verified
about that text being in the act: the core had no act.
Pinning an edition is the second step. The official bytes are placed next
to the package, declared a publication, and at every `check` the compiler
verifies no longer the file's consistency with itself but the
formalisation's consistency **with the document**.
## Package and norm
```law
language "law.core" version "0.2";
package tutorial.archive.pinned version "0.1.0";
namespace "urn:law:tutorial:archive:pinned";
entity Person;
relation in_researcher_registry(p: Person) kind institutional;
relation accredited(p: Person) kind institutional;
relation may_enter_rare_room(p: Person) kind institutional;
@source("ARCHIVE-RULES-2026-ART-4")
rule RareRoomAccess strict {
for p: Person;
when in_researcher_registry(p) and accredited(p);
then may_enter_rare_room(p);
}
```
## The materialisation claim
```law
source ARCHIVE_RULES {
kind municipal_act;
jurisdiction VELIKY_USTIN;
number "2026-14";
label ru-KZ official "Правила пользования городским архивом Великого Устина";
}
edition ARCHIVE_RULES_2026_RU of ARCHIVE_RULES {
language ru;
officiality official;
adopted @2026-01-15;
in_force [@2026-02-01, infinity);
materialization_status PINNED_OFFICIAL_BYTES;
}
```
The label reads: "Rules of use of the Veliky Ustin city archive".
`materialization_status` is that very claim. `PINNED_OFFICIAL_BYTES`
means: this edition has presented bytes, and they are official. The claim
obliges.
## Publication: bytes next to the package
```law
publication ARCHIVE_RULES_2026_RU_TEXT of ARCHIVE_RULES_2026_RU {
media_type "text/plain; charset=utf-8";
uri "urn:tutorial:archive-rules-2026:ru";
retrieved_at @2026-01-20T09:00:00Z;
content_hash "sha256:946bf1049eb7c2ac4a0a7c10f521d956ffe62f08e3a656a8fd0cdc0fa45d65c9";
local_path "sources/archive-rules-2026.txt";
}
```
`local_path` leads to a real file lying next to this page's package.
The path may not escape the
package directory — the source is part of the package, not a link into
the filesystem of whatever machine the package happened to land on.
`content_hash` here is the hash of the **whole document**, not of
a fragment. The compiler reads the file and recomputes; a discrepancy
yields `LDC-E5204`.
## A fragment is now verified twice
```law
fragment ARCHIVE_RULES_ART4 in ARCHIVE_RULES_2026_RU {
kind article;
locator "article/4";
text ru official """Читатель допускается в зал редких фондов, если он состоит в реестре
исследователей и имеет действующую аккредитацию.
""";
content_hash "sha256:7f76a4311e52b9af58fcf3175f613794316583ae19c4f0767d0570774a456688";
}
```
The quoted fragment reads: "A reader is admitted to the rare-collections room if listed in the researcher registry and holding a valid accreditation."
The hash is the same as in the first tutorial — the text did not change.
But there are now two checks, the second new:
| Check | Refusal code | What it claims |
|---|---|---|
| fragment text hash | `LDC-E5201` | the formaliser did not diverge from herself |
| publication document hash | `LDC-E5204` | the presented bytes are the same ones |
| **fragment text occurs in the document** | `LDC-E5202` | the article is taken from the act, not composed |
| a pinned edition's fragment carries a hash | `LDC-E5205` | the claim is secured on every fragment |
The third row is the heart of the mechanism. Occurrence is verified
**byte-wise and without normalisation**: no NFC, no whitespace folding,
no quote swaps. And occurrence, not offset: offsets shift at every
re-pinning of the document, occurrence does not.
The fourth row closed a gap: before it, an edition could
declare `PINNED_OFFICIAL_BYTES` while a fragment carried no hash at all,
and the source-quality claim stayed unsecured at article level. Both
directions are refused: spoiling the publication hash yields
`LDC-E5204`, removing the fragment's hash yields `LDC-E5205`.
## Why the act is fictional
Veliky Ustin is invented, and here that is not decoration but a
correctness condition. Declaring `PINNED_OFFICIAL_BYTES` honestly is
possible only when the file lying alongside **is** the official publication.
For a fictional act, its own text is official — there is no other.
With the real article 175 it cannot be so. The official publication of
the Social Code is a concrete document of the authorised body; a file you
place alongside will be a copy, and its status must be declared honestly. In
the corpus this fork is drawn explicitly: acts with real texts are pinned
with a `uri` to the publisher and `retrieved_at`, while acts with
teaching stand-in texts declare `ABSTRACT_ONLY` — there is nothing to
pin as a publication, and the coverage report writes "undefined"
instead of percents.
The temptation to declare `PINNED_OFFICIAL_BYTES` over a copy downloaded
from somewhere is great: the checks turn green, coverage grows. The price
is that the system starts claiming about the source what nobody answers
for — and claiming convincingly, with hashes.
## Track complete
The path from act text to executable norm has run in full:
| Tutorial | What was added |
|---|---|
| [Source and anchor](/tutorials/real-article-source/) | `@source` addresses, `fragment` pins — these are different things |
| [From text to norm](/tutorials/real-article-rules/) | bound variables, the expressiveness boundary, constraint versus rule |
| this page | the document is presented to the core, and the article's occurrence in it is verified |
Further tooling builds on top: edition comparison
shows what changed between editions, refusal explanation shows why law
stays silent, targeted fuzzing shows which norms no case reaches. Those
tools live above the frozen core and carry not a line of semantics in
themselves.
The exercise for this page is [/tutorials/exercise-pinned-edition/](/tutorials/exercise-pinned-edition/).