nb-13 solutions — Repeatable norms without copying
Checkable against law test packs/examples/language-demo/templates
(8 checked, 8 passed). Identifiers and code as written.
1. The some/none trio for Ann
Section titled “1. The some/none trio for Ann”Answer: with files_late only, late_fined is NEITHER and
late_noticed is TRUE_ONLY; adding repeat_late flips only
late_fined to TRUE_ONLY. The change belongs to
WithRecord/applicable.
The some-premise without a record does not fire test asserts only
files_late(ann): the WithRecord/applicable rule waits on the extra
when repeat_late(subject) premise the some option added, so nothing
concludes late_fined — NEITHER, with evaluation_status == COMPUTED
(the engine ran and found no support, it did not crash). The twin test
some-premise with a record fires adds repeat_late(ann) and nothing
else — TRUE_ONLY. late_noticed is TRUE_ONLY in both setups because
FirstNotice/applicable was generated with cause = none: no optional
premise exists to wait on, so the ground alone suffices. This is the
trio the article’s changed condition describes: same ground, one added
fact, three statuses across the two rules.
2. Flipping the sanction to FALSE_ONLY
Section titled “2. Flipping the sanction to FALSE_ONLY”Answer: assert exempt_case(ann, city-hall); the flip is produced by
ResaleFine/excluded/Amnesty/excludes together with
ResaleFine/excluded/Amnesty/priority.
Standing, ground and condition are identical in both tests
(trades_at, office_open, June 2026 inside the instance window), so
ResaleFine/applicable supports fined_for(ann, city-hall, Fine) in
both. The added exemption fact fires the generated defeater, whose head
is not fined_for(...), and the generated priority prefers that
defeater over the applicator with reason explicit_exception — hence
FALSE_ONLY rather than a conflict. Remove the exemption fact and the
twin test sanction applies is TRUE_ONLY again. Note the full stable
paths: quoting “the exception rule” is ambiguous, quoting
ResaleFine/excluded/Amnesty/excludes points at exactly one generated
node (see Limits).
3. Who inherits the 2026 window
Section titled “3. Who inherits the 2026 window”Answer: both generated rules inherit it
(ResaleFine/applicable and ResaleFine/excluded/Amnesty/excludes,
each via effective from self); the priority node carries only labels
and source. A December 2027 trade reports NEITHER.
The instance declares effective [@2026-01-01, @2027-01-01), and each
emit rule in the template contains effective from self, so the window
lands on the applicator and on every per-case defeater. The emit priority block has no effective line — priorities order rules, they
do not apply to facts, so there is no window to inherit. In December
2027 the applicator is out of window (no support) and the amnesty
defeater is equally out of window (no counter-support): nothing
concludes either way, hence NEITHER — not FALSE_ONLY, which would need
an operating defeater inside its window. Windows bound applicability
first, outcomes second.
4. Why one visit is NEITHER, not FALSE_ONLY
Section titled “4. Why one visit is NEITHER, not FALSE_ONLY”Answer: a failed count premise removes support; it never concludes the negation. No rule in the family has a negative head.
threshold not met asserts one visit against a threshold = 2 count
premise, so FrequentFiler/count does not fire — and nothing else in
the package concludes not frequent_filer(bob) either. FALSE_ONLY
requires a rule whose head is the negation, like the sanction’s
.../excludes defeater, which the threshold template never emits: its
only emit block concludes the positive head. To report FALSE_ONLY for
Bob the family would need a new generated node with a negative head —
for example an excluded-case mechanism like sanction’s, or an
explicit “closed register, checked and absent” defeater — plus the
priority that lets it win. Silence (one visit, no rule) stays NEITHER;
only an operating negative rule makes FALSE_ONLY.
How to verify
Section titled “How to verify”law test packs/examples/language-demo/templatesExpected: итого: 8 проверено, 8 прошли, 0 не прошли, 0 не исполнены.
The deciding tests are some-premise without a record does not fire,
some-premise with a record fires, none-premise always fires,
sanction applies, exception lifts the sanction, threshold: two visits and threshold not met.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.