docs← Back to article

Markdown for LLMs

A judgment on a live branch

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

Download this articlePlain text ↗
# A judgment on a live branch

## Intention

I want to request a proportionality assessment only where a court answer can change the outcome.

The court is asked only on a live branch: where its answer can still change the outcome.

## Incorrect form and why it stays silent

```law title="Incorrect form"
external judgment relation proportionate(p: Person) { }
```

Without authority the channel has no addressee and is rejected with LDC-E0201. Presence of an addressee does not mean a request will be asked on a dead branch.

## Correct form

Minimal standalone form:

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

entity Person;
external judgment relation proportionate(p: Person) { authority Court; }
relation eligible(p: Person);
relation blocked(p: Person);
relation allowed(p: Person);
rule Allow defeasible { for p: Person; when eligible(p) and proportionate(p); then allowed(p); }
rule Block defeater { for p: Person; when blocked(p); then allowed(p); }
```

## Frozen execution scene

| Facts and choice | Question | Answer |
|---|---|---|
| 1. live branch, no answer | `allowed` | `NEITHER` / `REQUIRES_JUDGMENT` |
| 2. conjunct refuted | `allowed` | `NEITHER` / `COMPUTED` |
| 3. conjunct unknown | `allowed` | `NEITHER` / `REQUIRES_JUDGMENT` |
| 4. defeater applies | `allowed` | `NEITHER` / `COMPUTED` |
| 5. positive answer accepted | `allowed` | `TRUE_ONLY` / `COMPUTED` |
| 6. the court does not revive a defeated candidate | `allowed` | `NEITHER` / `COMPUTED` |

```law
test "live branch, no answer" {
    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 eligible(entity_ref("urn:recipe:z-interpretations:03:p"));
    }
    evaluate truth(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == REQUIRES_JUDGMENT;
    expect judgment_request(proportionate, Court);
}
```

```law
test "conjunct refuted" {
    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 not eligible(entity_ref("urn:recipe:z-interpretations:03:p"));
    }
    evaluate truth(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == COMPUTED;
    expect judgment_requests(0);
}
```

```law
test "conjunct 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(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == REQUIRES_JUDGMENT;
    expect judgment_request(proportionate, Court);
}
```

```law
test "defeater applies" {
    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 eligible(entity_ref("urn:recipe:z-interpretations:03:p")); assert blocked(entity_ref("urn:recipe:z-interpretations:03:p"));
    }
    evaluate truth(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == COMPUTED;
    expect judgment_requests(0);
}
```

```law
test "positive answer accepted" {
    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 eligible(entity_ref("urn:recipe:z-interpretations:03:p")); assert proportionate(entity_ref("urn:recipe:z-interpretations:03:p")) { origin adjudicated; }
    }
    evaluate truth(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == TRUE_ONLY;
    expect evaluation_status == COMPUTED;
    expect judgment_requests(0);
}
```

```law
test "court does not revive defeated" {
    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 eligible(entity_ref("urn:recipe:z-interpretations:03:p")); assert blocked(entity_ref("urn:recipe:z-interpretations:03:p")); assert proportionate(entity_ref("urn:recipe:z-interpretations:03:p")) { origin adjudicated; }
    }
    evaluate truth(allowed(entity_ref("urn:recipe:z-interpretations:03:p")));
    expect truth_status == NEITHER;
    expect evaluation_status == COMPUTED;
    expect judgment_requests(0);
}
```



## Counterfactual

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

## Boundary

A refuted conjunct and an applied defeater close the branch silently; an unknown conjunct still calls for the court's answer.

## Pitfall

No request is raised for a refuted body or a defeated candidate; the scenes pin both boundaries.