docs← Back to article

Markdown for LLMs

nb-09 solutions — From permit to duties and powers

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

Download this articlePlain text ↗
# nb-09 solutions — From permit to duties and powers

*Checkable against `law test packs/examples/language-demo/permits`
(28 checked, 28 passed). Identifiers and code as written.*

## 1. Flipping `duty violated` to SATISFIED and to UNDETERMINED

**Answer: replace the explicit denial with the positive fact for
SATISFIED; drop the denial (assert neither) for UNDETERMINED.**

The violated test asserts
`not decision_notified(ann)` past the closed window, so the achievement
condition provably never held — VIOLATED. Asserting
`decision_notified(ann)` instead (as `duty satisfied` does) meets the
condition inside the window — SATISFIED. Asserting neither (as
`outcome unknown — no violation` does) leaves the engine with no witness
either way — UNDETERMINED. This is the trio the article's changed
condition describes: same window, same parties, three fact patterns,
three states.

## 2. Why maintenance violation, not "unknown"

**Answer: the recorded fines are a counterexample, and a counterexample
is the witness maintenance needs.**

A maintenance goal claims the condition holds at *every* point of the
window. One moment where `permit_eligible(ann)` provably
fails (here via `outstanding_fines`, which defeats eligibility through
`FinesRefusal`) — refutes the universal claim, so VIOLATED. Contrast
`without a certificate the post-window outcome is unknown`: judged
2027-01-05 with no counterexample on record, hence UNDETERMINED. Silence
never violates; a counterexample always does.

## 3. Standing, exercise, grounds in the groundless power

**Answer: standing present, exercise present, grounds absent.**

Standing: `permit_office(city-hall)` and `permit_eligible(ann)` are both
asserted, so the rule's `when` holds and the power exists. Exercise:
`revocation_notice(city-hall, ann)` is asserted, so the exercise act
occurred. Grounds: `resells_permit(ann)` is nowhere asserted, so
`valid_when` is false and the exercise operates nothing —
`permit_revoked` stays NEITHER. Add the resale fact and nothing else, and
the twin test `power exercised lawfully` goes TRUE_ONLY.

## 4. Why `MayObject` applies in March but not mid-April

**Answer: the liberty's window is 1–31 March 2026; a 15 April refusal
falls outside it, so the position does not apply at all.**

`ObjectionRight` fires only when `permit_refused(a, o)` holds, and the
resulting `MayObject` carries `window [@2026-03-01, @2026-03-31]`. On
10 March a refusal is inside the window — ACTIVE. A refusal dated
15 April is outside the window the rule declares, so there is no
`MayObject` for it: not VIOLATED, not UNDETERMINED — absent. Windows
bound applicability first, outcomes second (see Limits).

## How to verify

```sh
law test packs/examples/language-demo/permits
```

Expected: `итого: 28 проверено, 28 прошли, 0 не прошли, 0 не исполнены`.
The deciding tests are `duty satisfied`, `duty violated`,
`outcome unknown — no violation`,
`maintenance violated by counterexample`,
`without a certificate the post-window outcome is unknown`,
`power exercised lawfully`,
`power without grounds does not operate`, and `liberty and immunity`.