docs← Back to article

Markdown for LLMs

Two readings of one norm

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

Download this articlePlain text ↗
# Two readings of one norm

## Intention

I want to keep two readings and require a choice only for a dependent question.

Two readings of one norm stay side by side; only a dependent question waits for the choice.

## Incorrect form and why it stays silent

```text title="Incorrect form"
interpretation_group Meaning { alternatives Broad; selection exactly_one; }
```

One member does not form a group: LDC-E0201. The binding label on Narrow also does not select it automatically.

## Correct form

Minimal standalone form:

```law
language "law.core" version "0.2";
package recipes.z.r01 version "0.1.0";
namespace "urn:recipe:z-interpretations:01";

source Standard { kind standard; jurisdiction "none"; }
edition Edition of Standard { language ru; officiality official; in_force [@2026-01-01, infinity); }
fragment Clause in Edition { kind paragraph; locator "1"; text ru official "Учебная норма допускает два прочтения."; }
entity Person;
relation registered(p: Person);
relation accepted(p: Person);
relation receipt(p: Person);
rule Allow strict { for p: Person; when registered(p); then accepted(p); }
rule Deny strict { for p: Person; when registered(p); then not accepted(p); }
rule Receipt strict { for p: Person; when registered(p); then receipt(p); }
interpretation Broad of Clause { status disputed; include Allow; }
interpretation Narrow of Clause { status binding; include Deny; }
interpretation_group Meaning { alternatives Broad, Narrow; selection exactly_one; }
```

## Frozen execution scene

| Facts and choice | Question | Answer |
|---|---|---|
| 1. registry present, no choice | `accepted` | `NEITHER` / `INTERPRETATION_REQUIRED` |
| 2. same input, independent receipt | `receipt` | `TRUE_ONLY` / `COMPUTED` |
| 3. broad chosen | `accepted` | `TRUE_ONLY` / `COMPUTED` |
| 4. narrow chosen | `accepted` | `FALSE_ONLY` / `COMPUTED` |

```law
test "registry present, no choice" {
    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 registered(entity_ref("urn:recipe:z-interpretations:01:p"));
    }
    evaluate truth(accepted(entity_ref("urn:recipe:z-interpretations:01:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == INTERPRETATION_REQUIRED;
    expect issue(INTERPRETATION_REQUIRED);
}
```

```law
test "same input, independent receipt" {
    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 registered(entity_ref("urn:recipe:z-interpretations:01:p"));
    }
    evaluate truth(receipt(entity_ref("urn:recipe:z-interpretations:01:p")));
    expect truth_status == TRUE_ONLY;
    expect evaluation_status == COMPUTED;
    expect issue(INTERPRETATION_REQUIRED);
}
```

```law
test "broad reading chosen" {
    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";
            interpretation Broad;
        }
        assert registered(entity_ref("urn:recipe:z-interpretations:01:p"));
    }
    evaluate truth(accepted(entity_ref("urn:recipe:z-interpretations:01:p")));
    expect truth_status == TRUE_ONLY;
    expect evaluation_status == COMPUTED;
    expect interpretations(Broad);
}
```

```law
test "narrow reading chosen" {
    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";
            interpretation Narrow;
        }
        assert registered(entity_ref("urn:recipe:z-interpretations:01:p"));
    }
    evaluate truth(accepted(entity_ref("urn:recipe:z-interpretations:01:p")));
    expect truth_status == FALSE_ONLY;
    expect evaluation_status == COMPUTED;

}
```



## Counterfactual

Sidecar mutation: `alternatives Broad, Narrow;` → `alternatives Broad;`; expected `LDC-E0201`. Additional scenes with fragment deletion are marked in the table; the outcome is checked by both evaluators.

## Boundary

The pending choice blocks only dependent questions; the rest of the document keeps its own status.

## Pitfall

An independent question is not blocked by the pending choice: receipt stays COMPUTED even while the document reports INTERPRETATION_REQUIRED.