Skip to content
docs
Arxo ↗

nb-21 solutions — Positions live, files move, readings decide

For LLMs5 sections
← Back to lessonChapter 21 / 25 · Advanced II · Worked solution

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).

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.

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.