docs← Back to article

Markdown for LLMs

nb-01 solutions — First permit: facts, a rule and a question

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

Download this articlePlain text ↗
# nb-01 solutions — First permit: facts, a rule and a question

## Exercise (article section 10)

Setup: `vehicle_registered(ann)` asserted, `resident(ann)` not asserted.
Question: status of `truth(permit_eligible(ann))` under the probe program.

## Answer

`NEITHER`. The strict rule needs both conditions; with `resident(ann)`
missing it does not fire, and nothing else supports or denies
`permit_eligible(ann)` — symmetric to the resident-without-car case in the
article. This is unknown, not a refusal (full story in `nb-02`).

## Checkable test

Append to `/tmp/nb01-probe/probe.lawtest` (probe program unchanged):

```law
test "car without residency is unknown" {
    given {
        context { legal_time @2026-03-01; decision_time @2026-03-01T09:00:00Z; knowledge_time @2026-03-01T09:00:00Z; timezone "UTC"; }
        assert "vehicle-ann": vehicle_registered(entity_ref("urn:demo:probe:ann")) { origin case_input; }
    }
    evaluate truth(permit_eligible(entity_ref("urn:demo:probe:ann")));
    expect truth_status == NEITHER;
}
```

Command:

```sh
law engine test /tmp/nb01-probe/probe.lawtest --program /tmp/nb01-probe/probe.law
```

Observed result (2026-10-02, with the article's two base tests present):

```text
test PASS: resident with a car is eligible
test PASS: resident without a car is unknown
test PASS: car without residency is unknown
```

(A fourth probe test, `asserting the conclusion fires no rule`, fails as
designed — `applied(urn:demo:probe#PermitEligibility): в документе нет` —
demonstrating the article's typical-mistake section.)