Skip to content
docs
Arxo ↗

nb-10 solutions — A procedure with parallel checks

For LLMs6 sections
← Back to lessonChapter 10 / 25 · Advanced · Worked solution

Checkable against law test packs/examples/language-demo/procedure (6 checked, 6 passed). Identifiers and code as written.

1. A review start attempted while in Draft

Section titled “1. A review start attempted while in Draft”

Answer: the case stays Draft — current_state(st1, Draft) is TRUE_ONLY and any Filed or Review query is NEITHER.

StartReview declares from Filed, and a transition fires only from its from state. An attempt while the case rests in Draft finds no matching step, so it is absorbed with no effect — the same absorption the without the set test shows for a guardless-blocked File. State first, event second: the procedure checks where the case is before it cares what happened.

Answer: 44 kW derives tech_ok (the rule uses <=); 45 kW does not — so 44 kW approves like the 22 kW test, 45 kW blocks like the 120 kW test.

TechWithinLimit fires when kw <= 44 kW. A 44 kW plate satisfies the comparison, TechAccept reaches TechOk, both regions are terminal, and Decide yields Approved TRUE_ONLY. A 45 kW plate fails the comparison exactly as 120 kW does: tech_ok never holds, the Tech region stays TechPending, the join is unsatisfied, and Approved is NEITHER. Boundary included on one side only — <= against the declared 44 kW teaching value.

3. Which region finished, and the one missing attempt

Section titled “3. Which region finished, and the one missing attempt”

Answer: Docs reached DocsOk; Tech stayed TechPending. Attempting TechAccept with the TechApproved event flips Approved to TRUE_ONLY.

The join-waits test attempts DocsAccept (with DocsFiled) but never attempts TechAccept. With the 22 kW plate the guard would hold, so the single missing ingredient is the attempt itself: add the tech assertion from the ready test — attempted_transition(st1, TechAccept, TechApproved { … }) at 13:00 — and both regions are terminal when Decide fires on ReviewComplete, giving Approved TRUE_ONLY. This is the article’s changed condition in reverse: same setup, one attempt added, join satisfied.

Answer: the second File finds the case already past its from state, so it misfires; only StartReview on ReviewStarted moves the case on to Review.

The first attempt carries Draft → Filed and fires. The second attempt names the same transition, whose from is Draft — but the case now rests in Filed, so the step does not apply and the case holds. Re-entry is absorbed, never re-executed. Progress needs a different transition: StartReview (from Filed, on ReviewStarted), which the ready test attempts at 11:00 to enter the parallel state.

5. The three ingredients of Decide, and which the threshold breaks

Section titled “5. The three ingredients of Decide, and which the threshold breaks”

Answer: (a) the case rests in Review with both regions terminal, (b) the ReviewComplete event is on record, (c) the join sees DocsOk and TechOk. The over-threshold test keeps (a)-in-part and (b) but breaks (c) via the Tech guard.

Standing: filing and review entry succeeded (22-vs-120 differs only in the plate), so the case is in Review. Event: Decide with ReviewComplete at 14:00 is attempted in both tests. Regions: Docs reaches DocsOk in both — but with 120 kW tech_ok never holds, so TechAccept misfires, Tech stays TechPending, and join all refuses the exit. Add nothing but a passing plate and the twin test both regions ready — decision taken goes TRUE_ONLY.

Terminal
law test packs/examples/language-demo/procedure

Expected: итого: 6 проверено, 6 прошли, 0 не прошли, 0 не исполнены. The deciding tests are filing with a complete set, without the set the case stands still, re-entry holds the state, both regions ready — decision taken, join waits for both regions, and technical conditions above the threshold block the region.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.