Delegation and subdelegation
For LLMs6 sections
Intention
Section titled “Intention”I want to pass a power along a chain through a legal effect.
Incorrect form and why it stays silent
Section titled “Incorrect form and why it stays silent”// Глубину цепочки считают неограниченной.The effect enters the next step of the strict closure. Depth is limited by maxNormChainDepth; exhausting it must not return a partial legal result.
Correct form
Section titled “Correct form”language "law.core" version "0.2";package recipes.a.r13 version "0.1.0";namespace "urn:recipe:a-positions:13";
entity Person;relation authorised(p: Person);relation next(p: Person, q: Person);relation signed(p: Person, q: Person);rule Delegate strict { for p: Person; for q: Person; when authorised(p) and next(p, q); then power Transfer { holder p; over q; exercise signed(p, q); valid_when authorised(p); effect create(authorised(q)); };}Frozen execution scene
Section titled “Frozen execution scene”| Facts and snapshot | Question | Answer |
|---|---|---|
| two transfer steps; 2026-09-05 | truth(authorised(entity_ref("urn:recipe:a-positions:13:r"))) | truth_status == TRUE_ONLY; / COMPUTED |
| second step not signed; 2026-09-05 | truth(authorised(entity_ref("urn:recipe:a-positions:13:r"))) | truth_status == NEITHER; / COMPUTED |
two signed delegation steps authorise
test "two signed delegation steps authorise" { given { context { legal_time @2026-09-05; decision_time @2026-09-05T09:00:00+05:00; knowledge_time @2026-09-30T09:00:00+05:00; timezone "Asia/Almaty"; } assert authorised(entity_ref("urn:recipe:a-positions:13:p")); assert next(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); assert next(entity_ref("urn:recipe:a-positions:13:q"), entity_ref("urn:recipe:a-positions:13:r")); assert signed(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); assert signed(entity_ref("urn:recipe:a-positions:13:q"), entity_ref("urn:recipe:a-positions:13:r")); } evaluate truth(authorised(entity_ref("urn:recipe:a-positions:13:r"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;
}unsigned second step blocks authorisation
test "unsigned second step blocks authorisation" { given { context { legal_time @2026-09-05; decision_time @2026-09-05T09:00:00+05:00; knowledge_time @2026-09-30T09:00:00+05:00; timezone "Asia/Almaty"; } assert authorised(entity_ref("urn:recipe:a-positions:13:p")); assert next(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); assert next(entity_ref("urn:recipe:a-positions:13:q"), entity_ref("urn:recipe:a-positions:13:r")); assert signed(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); } evaluate truth(authorised(entity_ref("urn:recipe:a-positions:13:r"))); expect truth_status == NEITHER; expect evaluation_status == COMPUTED;
}Two signed steps with maxNormChainDepth = 1 → fatal RESOURCE_LIMIT without a partial result. The case is replaced by the JSON shown in full.
depth limit refuses recursive proof
test "depth limit refuses recursive proof" { given { context { legal_time @2026-09-05; decision_time @2026-09-05T09:00:00+05:00; knowledge_time @2026-09-30T09:00:00+05:00; timezone "Asia/Almaty"; } assert authorised(entity_ref("urn:recipe:a-positions:13:p")); assert next(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); assert next(entity_ref("urn:recipe:a-positions:13:q"), entity_ref("urn:recipe:a-positions:13:r")); assert signed(entity_ref("urn:recipe:a-positions:13:p"), entity_ref("urn:recipe:a-positions:13:q")); assert signed(entity_ref("urn:recipe:a-positions:13:q"), entity_ref("urn:recipe:a-positions:13:r")); } evaluate truth(authorised(entity_ref("urn:recipe:a-positions:13:r"))); expect issue(RESOURCE_LIMIT);
}{ "assertions": [ { "contentHash": "sha256:c985386b9ade6a5c28cf15a77c7f79001de97a50abecd2ca3fc3900615427786", "evidence": [], "id": "urn:recipe:a-positions:13#assert-ha73c25311c08daf34f51287d9a524c6cdd325d5aefdd7cc25a7bdf0775f03f83", "kind": "assertion", "literal": { "args": [ { "id": "urn:recipe:a-positions:13:p", "kind": "entity_ref" } ], "kind": "literal", "polarity": "positive", "predicate": "urn:recipe:a-positions:13#authorised" }, "origin": "source_asserted", "package": "urn:recipe:a-positions:13" }, { "contentHash": "sha256:d6905d70435f0105cac4ce886fe6cf0be2af1f5139f87fc53a94a8c3d4b494d8", "evidence": [], "id": "urn:recipe:a-positions:13#assert-h387509721d083aee89c86785d2c19f3f6580d34cd1b275b06c541a7daa494397", "kind": "assertion", "literal": { "args": [ { "id": "urn:recipe:a-positions:13:p", "kind": "entity_ref" }, { "id": "urn:recipe:a-positions:13:q", "kind": "entity_ref" } ], "kind": "literal", "polarity": "positive", "predicate": "urn:recipe:a-positions:13#next" }, "origin": "source_asserted", "package": "urn:recipe:a-positions:13" }, { "contentHash": "sha256:785f255d344e2619a0dfa9c977918dc4ee906ccc6c67775571ff15f2b5cf5158", "evidence": [], "id": "urn:recipe:a-positions:13#assert-h596733113bd8228d49ed078901b65973e53009fe28bea591551c541a7db2aff7", "kind": "assertion", "literal": { "args": [ { "id": "urn:recipe:a-positions:13:q", "kind": "entity_ref" }, { "id": "urn:recipe:a-positions:13:r", "kind": "entity_ref" } ], "kind": "literal", "polarity": "positive", "predicate": "urn:recipe:a-positions:13#next" }, "origin": "source_asserted", "package": "urn:recipe:a-positions:13" }, { "contentHash": "sha256:9091453b4094a51cb0fc005a363ce3450bc6f58aa5bf840801e98797100e9ebe", "evidence": [], "id": "urn:recipe:a-positions:13#assert-h5fd9f05e6e62b46afe6f3ac38ba7d494c15d9b03d118c74db1bfd9f666ff5d15", "kind": "assertion", "literal": { "args": [ { "id": "urn:recipe:a-positions:13:p", "kind": "entity_ref" }, { "id": "urn:recipe:a-positions:13:q", "kind": "entity_ref" } ], "kind": "literal", "polarity": "positive", "predicate": "urn:recipe:a-positions:13#signed" }, "origin": "source_asserted", "package": "urn:recipe:a-positions:13" }, { "contentHash": "sha256:1e8bb1e7aa1023f47ca9dba2bd783b23db817eeb64d014439a4576adbe3596ce", "evidence": [], "id": "urn:recipe:a-positions:13#assert-h3ef52a93c1c069c034ed8997740040d1c78739f9e39e9d6472887532aa24f467", "kind": "assertion", "literal": { "args": [ { "id": "urn:recipe:a-positions:13:q", "kind": "entity_ref" }, { "id": "urn:recipe:a-positions:13:r", "kind": "entity_ref" } ], "kind": "literal", "polarity": "positive", "predicate": "urn:recipe:a-positions:13#signed" }, "origin": "source_asserted", "package": "urn:recipe:a-positions:13" } ], "context": { "decisionTime": "2026-09-30T09:00:00+05:00", "knowledgeTime": "2026-09-30T09:00:00+05:00", "legalTime": "2026-09-05", "timezone": "Asia/Almaty" }, "options": { "limits": { "maxNormChainDepth": 1 } }}Counterfactual
Section titled “Counterfactual”Mutation: valid_when authorised(p); → “; rejection LDC-E1305. Additional counterfactuals are shown as separate scenes.
Boundary
Section titled “Boundary”next sets a finite chain of possible delegates; signed is an accepted fact of exercise. Subject-matter competence and subdelegation limits must be given by the act.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.