Special rule over general
For LLMs7 sections
Intention
Section titled “Intention”I want to pin the superiority of a special rule explicitly.
A special rule with more conditions but no priority still leaves BOTH.
Incorrect form and why it stays silent
Section titled “Incorrect form and why it stays silent”// У Special больше условий; priority отсутствует.The number of conditions does not create superiority. Without an edge both opposite supports remain.
Correct form
Section titled “Correct form”language "law.core" version "0.2";package recipes.b.r05 version "0.1.0";namespace "urn:recipe:b-rules:05";
entity Person;relation eligible(p: Person);relation special(p: Person);relation allowed(p: Person);rule General defeasible { for p: Person; when eligible(p); then allowed(p); }rule Special defeasible { for p: Person; when eligible(p) and special(p); then not allowed(p); }priority SpecialWins { prefer Special over General; reason lex_specialis; }Frozen execution scene
Section titled “Frozen execution scene”| Facts and choice | Question | Answer |
|---|---|---|
| special case | truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))) | FALSE_ONLY / COMPUTED |
| priority removed | truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))) | BOTH / COMPUTED |
| general case | truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))) | TRUE_ONLY / COMPUTED |
special case
test "special case" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } assert eligible(entity_ref("urn:recipe:b-rules:05:p")); assert special(entity_ref("urn:recipe:b-rules:05:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))); expect truth_status == FALSE_ONLY; expect evaluation_status == COMPUTED;}priority removed
test "priority removed" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } assert eligible(entity_ref("urn:recipe:b-rules:05:p")); assert special(entity_ref("urn:recipe:b-rules:05:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))); expect truth_status == BOTH; expect evaluation_status == COMPUTED;}general case
test "general case" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00+05:00; knowledge_time @2026-09-13T09:00:00+05:00; timezone "Asia/Almaty"; } assert eligible(entity_ref("urn:recipe:b-rules:05:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:05:p"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}Counterfactual
Section titled “Counterfactual”Mutation: rule General defeasible → rule General strict; rejection LDC-E4105. Scenes that delete a fragment are marked explicitly in the table.
Boundary
Section titled “Boundary”The lex_specialis ground names an accepted priority rule. Automatic proof of nested scopes is not claimed here. Different money values are Different amounts are not opposites.
Pitfall
Section titled “Pitfall”More conditions do not create superiority: without a priority edge, the special rule leaves BOTH.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.