nb-21 solutions — Positions live, files move, readings decide
Checkable against law test packs/examples/language-demo/lifecycle
(25 checked, 25 passed) and
law test packs/examples/language-demo/lifecycle_stages
(5 checked, 5 passed). Identifiers and code as written.
1. Which single fact turns revocation to NEITHER
Section titled “1. Which single fact turns revocation to NEITHER”Answer: the sublet fact (sublet-ann); the power without grounds does not operate test already proves the outcome.
StallRevocation needs two things at once: the exercise event
(revocation_notice) and the gate (valid_when (stall_sublets(a))).
The notice alone only records an attempt. Remove stall_sublets(ann)
and the gate fails, no constitutive step runs, and
stall_revoked(ann) is NEITHER. The without-grounds test is exactly
that configuration (open permit, office, notice, no sublet →
NEITHER).
2. Why the gated sealing changes nothing
Section titled “2. Why the gated sealing changes nothing”Answer: the token terminate in effect terminate(...); the run
records NON_EXECUTABLE_RULE; a second sealing order changes
nothing observable.
SealStall passes its gate (stall_sublets(a) holds), so this is not
an invalid exercise — it is a valid attempt with a non-executable
effect form. The 0.1 subset executes only create: the engine warns
NON_EXECUTABLE_RULE once per position–event pair, keeps the event,
produces no invalidly_exercised, and leaves stall_permit_open(ann)
TRUE_ONLY. A second sealing_order is the same pair again — the
warning is not multiplied and still no effect is created, so both
expects (truth_status == TRUE_ONLY, issue(NON_EXECUTABLE_RULE))
hold unchanged.
3. Why the open question is an issue, not NEITHER
Section titled “3. Why the open question is an issue, not NEITHER”Answer: the group selects exactly_one, so an unselected choice is
a missing decision the engine must name — INTERPRETATION_REQUIRED;
the main route is unaffected, proved by main route needs no reading.
NEITHER would mean “the rules ran and concluded nothing”. Here the
rules cannot run at all: neither NarrowReading nor BroadReading
may fire without selection, and guessing one would invent law. So the
engine reports the cause as an issue on the storage query. That the
missing choice pollutes nothing is proved separately: main route needs no reading selects no interpretation and still derives
DecideStall ACTIVE (with NoSublet ACTIVE beside it) — the duties
never read storage_covered.
4. Who decides Bob’s overnight right
Section titled “4. Who decides Bob’s overnight right”Answer: the SubletsLoseOvernight rule decides — overnight_right(bob)
is FALSE_ONLY — and PNight does not cover him because his defendant
fact takes him out of the precedent’s fact pattern.
Bob keeps his pitch (plaintiff fact, matching PNight) but also
sublets it (defendant fact sublets_pitch). The precedent’s outcome
follows only where its plaintiff pattern holds alone — Ann’s case
(precedent followed, TRUE_ONLY). For Bob the distinguishing rule
fires on the defendant fact and concludes not overnight_right(bob),
hence FALSE_ONLY. Following is for the same-sided case;
distinguishing is for the case with the extra losing fact.
5. Adding a procedure to the stages package
Section titled “5. Adding a procedure to the stages package”Answer: it fails at the static check, law engine check, with
LDC-E4126 (STAGE_PROCEDURE_UNSUPPORTED).
A stage and a procedure in one program are refused before any test
runs: the tour fold the stage needs is undefined alongside a
procedure automaton. The committed probe
packs/examples/language-demo/lifecycle/evidence/snippets/stage-procedure.law.txt
(a stage plus a minimal two-state procedure) is refused with
error LDC-E4126, exit 1. No law test line is reached — the
program does not compile, so there is nothing to execute. This is an
implementation-support fact about the verified profile
(law 0.1.0, law.core/0.2), not a language-wide claim.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.