docs← Back to article

Markdown for LLMs

nb-08 solutions — Which edition applies and when the term expires

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

Download this articlePlain text ↗
# nb-08 solutions — Which edition applies and when the term expires

*Checkable against `law test packs/examples/language-demo/sources`
(6 checked, 6 passed) and `law test
packs/examples/language-demo/boundaries` (21 checked, 21 passed).
Identifiers and code as written.*

## 1. `eligibility_notice(ann)` at `legal_time @2025-06-01`, resident with a vehicle

**Answer: `NEITHER` — no rule fires.**

`NewEligibilityNotice` carries `effective [@2026-01-01, infinity)`,
so at June 2025 it is silent even though both of its conditions hold.
`OldResidencyNotice` is in force, but it concludes the *different*
predicate `residency_notice`, not `eligibility_notice`. This is the
`before entry into force the 2026 rule is silent` test: same facts as
the in-force test, one axis moved, answer `NEITHER`.

## 2. `ReplyOnTime` on `@2026-03-11` versus `@2026-03-12`, nothing filed

**Answer: `ACTIVE` on 11 March, `VIOLATED` on 12 March.**

Receipt was `@2026-03-06`; counting starts the next day
(`start_count next_day`) and the window end is included
(`include_end true`), so the two-business-day window's last day is
11 March — the `working days: the term includes the window end` test
expects `position(ReplyOnTime, ACTIVE)` there. By 12 March the window
has closed with `not reply_filed`, so the `overdue without
performance` test expects `position(ReplyOnTime, VIOLATED)`. One day
changes it because the end day itself still counts: expiry happens
the day *after* the inclusive end, not on it.

## 3. Urgent application filed `@2026-02-01`: `@2026-02-11` and `@2026-03-03`

**Answer: `TRUE_ONLY` on 11 February (the `FastTrack` case fires);
`FALSE_ONLY` on 3 March (the urgent case refutes the default).**

`urgent_appeal` triggers `case FastTrack … 10 calendar_day`, so the
due date is `@2026-02-11` — the `special case defeats the general
term` test. At `@2026-03-03` (the 30-day default date) the answer is
not silence but `FALSE_ONLY`: the `defeated general term does not
hold` test shows the special case carries a negative head that
refutes the default. The urgent filing is therefore due exactly once,
early — it does not get two deadlines.

## 4. Delete `deadline_policy WORKING_DAYS;` from `CaseAxes`

**Answer: the `working days` tests stop computing; the `without a
policy working days are not counted` test names the outcome:
`NON_EXECUTABLE` with `issue(MISSING_POLICY)`.**

Without a policy, `add_business_days(on, 2 business_day)` has no
defined start/inclusion/roll, so every evaluation that needs it —
the `ACTIVE` and the `VIOLATED` positions alike — becomes
`NON_EXECUTABLE` instead of answering. The edition tests (1–3 of the
suite) are unaffected: they use no business-day arithmetic. The
lesson is the article's rule of thumb restated: a business-day
window without a policy is refused loudly, never guessed.

## How to verify

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

Expected: `итого: 6 проверено, 6 прошли, 0 не прошли, 0 не исполнены`.
The deciding tests are `2026 edition: the rule is in force`
(`TRUE_ONLY`, `applied(NewEligibilityNotice)`), `before entry into
force the 2026 rule is silent` (`NEITHER`), `working days: the term
includes the window end` (`ACTIVE`), `working days: overdue without
performance` (`VIOLATED`), and `without a policy working days are
not counted` (`NON_EXECUTABLE`, `MISSING_POLICY`).

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

Expected: `итого: 21 проверено, 21 прошли, 0 не прошли, 0 не исполнены`.
The deciding tests are `default term — 30 calendar days`
(`TRUE_ONLY` at `@2026-03-03`), `special case defeats the general
term` (`TRUE_ONLY` at `@2026-02-11`), and `defeated general term
does not hold` (`FALSE_ONLY` at `@2026-03-03`).