Skip to content
docs
Arxo ↗

nb-07 solutions — A document is not yet a proven fact

For LLMs5 sections
← Back to lessonChapter 07 / 25 · Intermediate · Worked solution

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

1. Which conjunct fails without verification?

Section titled “1. Which conjunct fails without verification?”

Answer: authentic(d, "urn:demo:northbridge:verifier", "verified").

The Accept rule needs all five conjuncts: edge, evidence_status, authentic, available, current. The stored record supplies the document and its status, and the support line supplies the link — but only a verification declaration with a matching document hash, verifier URN and outcome verified can support the authentic conjunct. With the verification VPass block deleted, nothing feeds authentic, so Accept never fires and accepted(e) is never derived. Record plus link are transport: they say what the paper claims, never who checked it.

2. What does the missing policy line switch off?

Section titled “2. What does the missing policy line switch off?”

Answer: evidence_policy FilePolicy in the context; it switches off the entire acceptance computation.

Without the policy selection, the engine never runs FilePolicy at all — the hand-asserted edge, evidence_status, authentic, available and current facts are ordinary assertions with no rule consuming them, because the only rule that would consume them (Accept) is wired into the unselected policy. Support stays transport: filed, hashed and linked, but never evaluated. One context line is the on/off switch for the whole pipeline.

3. Why silence instead of an error — and what if protection were lifted?

Section titled “3. Why silence instead of an error — and what if protection were lifted?”

Answer: protection discards the assertion route rather than forbidding it with an error, so the fact simply has no lawful source and the question is NEITHER. If residency_proof were removed from protects, the bare assert would become a lawful source again and ProofAdmits would derive resident_admitted(ann): TRUE_ONLY.

Protection is a routing rule, not a type error: it says “this predicate may enter only through the evidence pipeline”. The assertion is ignored as a source, no derivation fires, and the engine reports the honest outcome for an unsupported question — NEITHER. Lifting protection restores assertion as a source, which is exactly how the unprotected closure facts in nb-06 enter.

4. Refuting document: status and the deciding word

Section titled “4. Refuting document: status and the deciding word”

Answer: FALSE_ONLY; the deciding word is refutes.

The scenario links the verified document with support DenyDoc refutes residency_proof(...) instead of supports. A verified refuting document runs the same pipeline in the opposite direction: acceptance of a document that speaks against the claim yields an explicit negative, hence FALSE_ONLY rather than the NEITHER of a missing chain. One word flips the polarity of the whole result.

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

Expected: итого: 9 проверено, 9 прошли, 0 не прошли, 0 не исполнены. The deciding tests are policy selected, authenticity pinned (TRUE_ONLY), without pinned authenticity support is rejected (NEITHER), without a policy support stays transport (NEITHER), bare assertion of the protected under a policy (NEITHER), and refuting document (FALSE_ONLY).

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

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