# Choose the kind of a relation ## Intent I want to name the nature of a fact without attributing evidential force to metadata. The same truth holds under a different kind. ## Wrong form and why it stays silent ```law title="Incorrect form" relation received(d: Letter) kind empirical; fiction Receipt strict { for d: Letter; when delivered(d); deem received(d); } ``` kind itself does not change truth. Warning E1309 shows a wrong choice of an empirical fiction head; it does not block derivation. ## Correct form ```law language "law.core" version "0.2"; package recipes.g.r09 version "0.1.0"; namespace "urn:recipe:g-concepts:09"; entity Letter; relation delivered(d: Letter); relation received(d: Letter) kind institutional; fiction Receipt strict { for d: Letter; when delivered(d); deem received(d); } ``` ## Frozen execution scene | Facts on 13.09.2026 | Question | Answer | |---|---|---| | institutional head | `truth(received(entity_ref("urn:recipe:g-concepts:09:p")))` | `truth_status == TRUE_ONLY;` / `COMPUTED` | | no producer | `truth(received(entity_ref("urn:recipe:g-concepts:09:p")))` | `truth_status == NEITHER;` / `COMPUTED` | ```law test "institutional head derives" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } assert delivered(entity_ref("urn:recipe:g-concepts:09:p")); } evaluate truth(received(entity_ref("urn:recipe:g-concepts:09:p"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED; } ``` ```law test "no producer stays unknown" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } } evaluate truth(received(entity_ref("urn:recipe:g-concepts:09:p"))); expect truth_status == NEITHER; expect evaluation_status == COMPUTED; } ``` kind institutional is replaced with empirical: E1309 warns, but truth remains TRUE_ONLY. ```law test "empirical-head variant derives receipt directly" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } assert delivered(entity_ref("urn:recipe:g-concepts:09:p")); } evaluate truth(received(entity_ref("urn:recipe:g-concepts:09:p"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED; } ``` ```python >>> import runpy >>> check = runpy.run_path("docs/recipes/g-concepts/resources/check.py") >>> check["check_variant"](https://github.com/arxohq/law/blob/master/docs/recipes/g-concepts/9) 'Г9: контрфактуал подтверждён; lawc = lawref' ``` ## Counterfactual Mutation `relation received(d: Letter) kind institutional;` → `relation received(d: Letter) kind empirical;`: LDC-E1309 (warning, exit code 0). ## Boundary A policy may read kind, but this program has no such policy. The institutional label does not create source authority and does not turn an empirical observation into a reliable one.