Later-enacted rule
Intention
Section titled “Intention”I want to apply an explicitly chosen policy that compares dates of enactment.
The policy compares entry-into-force dates; the applicability window is separate from the priority edge.
Incorrect form and why it stays silent
Section titled “Incorrect form and why it stays silent”// У New позднее effective; политики Later нет.
// Объявление entity RuleApplication отсутствует.for high: RuleApplication;effective determines applicability, not superiority. The profile explicitly chooses the date of enactment; missing date data leaves the conflict. RuleApplication is a local type here, not a built-in: it must be declared. Meta-predicates rule_of and conflicts, by contrast, are supplied by the engine; a local twin would shadow them.
Correct form
Section titled “Correct form”language "law.core" version "0.2";package recipes.b.r06 version "0.1.0";namespace "urn:recipe:b-rules:06";
entity Person;relation eligible(p: Person);relation special(p: Person);relation allowed(p: Person);entity RuleApplication;relation enacted(rule_name: Text, day: Date);rule Old defeasible { effective [@2025-01-01, infinity); for p: Person; when eligible(p); then allowed(p); }rule New defeasible { effective [@2026-01-01, infinity); for p: Person; when eligible(p); then not allowed(p); }priority policy Later { for high: RuleApplication; for low: RuleApplication; when conflicts(high, low) and exists hr in (collect hr: Text where rule_of(high, hr)) where exists lr in (collect lr: Text where rule_of(low, lr)) where exists hd in (collect hd: Date where enacted(hr, hd)) where exists ld in (collect ld: Date where enacted(lr, ld)) where hd > ld; prefer high over low; reason lex_posterior;}Frozen execution scene
Section titled “Frozen execution scene”| Facts and choice | Question | Answer |
|---|---|---|
| enactment dates given | truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))) | FALSE_ONLY / COMPUTED |
| only effective windows | truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))) | BOTH / COMPUTED |
| policy removed | truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))) | BOTH / COMPUTED |
introduction dates stated
test "introduction dates stated" { 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:06:p")); assert enacted(Old, @2025-01-01); assert enacted(New, @2026-01-01); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))); expect truth_status == FALSE_ONLY; expect evaluation_status == COMPUTED;}effective windows only
test "effective windows only" { 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:06:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))); expect truth_status == BOTH; expect evaluation_status == COMPUTED;}policy removed
test "policy 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:06:p")); assert enacted(Old, @2025-01-01); assert enacted(New, @2026-01-01); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:06:p"))); expect truth_status == BOTH; expect evaluation_status == COMPUTED;}Counterfactual
Section titled “Counterfactual”Mutation: entity RuleApplication; → “; rejection LDC-E2101. Scenes that delete a fragment are marked explicitly in the table.
Boundary
Section titled “Boundary”The teaching profile compares only two rules of one rank and subject. A real profile must separately constrain comparable kinds, level, special rules and transitional provisions.
Pitfall
Section titled “Pitfall”Effective windows alone do not resolve the conflict: without enactment dates for the policy, the answer stays BOTH.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.