docs← Back to article

Markdown for LLMs

nb-25 solutions — Capstone case

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

Download this articlePlain text ↗
# nb-25 solutions — Capstone case

*Checkable against `law test packs/examples/language-demo/capstone`
(9 checked, 9 passed, 0 failed). Tool `law 0.1.0`, language
`0.2`, semantics `law.core/0.2`, std `0.2.0`. Identifiers and
code as written.*

## Exercise: Bob's five values

Bob files: resident with a registered car, twelve-month term,
filed 1 March, no hold, single filing copy.

**Answer:**

1. `capstone_ready(Bob)` is `TRUE_ONLY` — residency plus car
fires `permit_eligible` upstream (same shape as Ann's
`resident driver is capstone-ready`).
2. `capstone_grant(Bob)` is `TRUE_ONLY` — readiness holds and
no `capstone_hold` blocks the defeasible grant (same shape as
`resident driver is granted without a hold`; contrast `a hold
defeats the grant`, which differs by exactly that one fact).
3. `capstone_fee(12)` is `120 EUR` — twelve months at the
shared `MONTHLY_RATE` of 10 EUR (same rate as `capstone fee
for three months` at 30 EUR).
4. `CapstoneTrack(12)` is `0.2` — the first row matches
(direct analogue of `capstone track rewards the long term`).
5. `capstone_due(Bob, @2026-04-01)` is `TRUE_ONLY` — thirty
calendar days after the 1 March filing under `CAPSTONE_DAYS`
(direct analogue of `capstone deadline thirty days after
filing`).

Run `law test packs/examples/language-demo/capstone`:
`итого: 9 проверено, 9 прошли, 0 не прошли, 0 не исполнены;
код 0` — all five predictions confirmed, suite green. The
minimal change that would flip value 2 to `NEITHER` is adding
one `capstone_hold` fact (cost 1, per the counterfactual in
section 6 of the article).

## Mini-exercise 1: no car, no grant

*Checkable on a scratch copy: 9 shipped tests plus the new
probe, 10 checked, 10 passed, 0 failed — or by shape against
the shipped suite.*

**Answer:** both `NEITHER`. Readiness needs the vehicle
conjunct (`without a car nothing is ready`), and the grant
needs readiness (`probe: grant silent without a car`). The
choice is conjunction all the way down: no link fires on a
partial file, so silence propagates from eligibility to
grant.

## Mini-exercise 2: Carol's single copy

*Checkable on a scratch copy (`probe: single copy, no
conflict`), same shape as the deadline test.*

**Answer:** `TRUE_ONLY`, no issue. A key with one value is
satisfied, so no `KEY_CONFLICT` arises — the single-copy
shape of `capstone deadline thirty days after filing`, which
derives 1 April from one filing. The conflict in step 2 is a
property of the doubled input, not of filing as such.

## Mini-exercise 3: the hold lifts

*Checkable by shape against the shipped pair.*

**Answer:** `TRUE_ONLY`. The file returns to the `granted
without a hold` shape: an `unless` defeater leaves no
residue once its condition is gone. Contrast the naive
strict denial, which would have written `FALSE_ONLY` into
the record — silence lifts cleanly, denial would not.

## Mini-exercise 4: Narrow decides

*Checkable by shape against the appeals suite (7/7).*

**Answer:** `FALSE_ONLY`. The Narrow rule reads only
`second_vehicle`, so eligibility is irrelevant under it —
the same `FALSE_ONLY` shape as the `narrow reading` test,
which asserts the vehicle alone. Choosing Narrow means the
second car decides against the permit no matter how strong
the rest of the file is.

## Mini-exercise 5: the 2026 rule asleep

*Checkable by shape against the sourcetime suite (20/20).*

**Answer:** `NEITHER`. The executed shape of `before entry
into force the 2026 rule is silent`: the 2026 rule's window
has not opened at `@2025-06-01`, so it does not participate
no matter how complete the facts are. The old notice is a
different predicate — it holds in its window, but the
question asked about the new one.

## Integrative assignment: Bob's nine values plus three twists

*Checkable against the three section 4 commands: capstone
9/9, appeals 7/7, sourcetime 20/20, all green.*

**Answers:**

1. `capstone_ready(Bob)` is `TRUE_ONLY` — `resident driver
is capstone-ready`.
2. `capstone_grant(Bob)` is `TRUE_ONLY` — `granted without
a hold`.
3. The 1 March filing is `TRUE_ONLY` with `KEY_CONFLICT` —
the conflict pair; the key reports, it does not deny.
4. Under the hold the grant is `NEITHER` with readiness
`TRUE_ONLY` — `a hold defeats the grant` plus the surviving
readiness probe; the `unless` gates one link.
5. After the hold is lifted the grant is `TRUE_ONLY` —
defeater removed, grant follows readiness again.
6. `second_permit(Bob)` under Narrow is `FALSE_ONLY` —
Narrow reads only the second vehicle.
7. `second_permit(Bob)` under Broad is `TRUE_ONLY` — Broad
with eligibility.
8. The 2025 `eligibility_notice` is `NEITHER` — the 2026
rule is silent before entry into force.
9. `resident_admitted` is `NEITHER` at January office
knowledge, `TRUE_ONLY` at March knowledge — admission
follows `knowledge_time`, and the decision-day pair shows
no other clock substitutes.

**Three twists — name the construct:**

(a) A suspension that blocks while recorded and vanishes
when cleared → `unless` on the grant (step 3: removal
without denial, no residue).
(b) Two defensible readings of one term → named
interpretations under an `exactly_one` group with
case-level selection (step 4: disagreement named, no
silent default).
(c) A proof dated before the filing that arrives after the
decision → knowledge-gated admission via the evidence
policy, not a `legal_time` shift (step 5: the proof's date
never was the question; the office's knowledge is).