Conflict without a winner
Intention
Section titled “Intention”I want to keep both opposite supports when there is no priority.
Without a priority edge the result stays BOTH.
Incorrect form and why it stays silent
Section titled “Incorrect form and why it stays silent”// eligible(p) и refused(q) считаются конфликтом allowed(p).Different subjects yield different ground atoms. BOTH arises for one head and one argument tuple, not for any pair of opposite rules.
Correct form
Section titled “Correct form”language "law.core" version "0.2";package recipes.b.r09 version "0.1.0";namespace "urn:recipe:b-rules:09";
entity Person;relation eligible(p: Person);relation special(p: Person);relation allowed(p: Person);relation refused(p: Person);rule Allow defeasible { for p: Person; when eligible(p); then allowed(p); }rule Refuse defeasible { for p: Person; when refused(p); then not allowed(p); }Frozen execution scene
Section titled “Frozen execution scene”| Facts and choice | Question | Answer |
|---|---|---|
| one bearer | truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))) | BOTH / COMPUTED |
| different bearers | truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))) | TRUE_ONLY / COMPUTED |
| refusal only | truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))) | FALSE_ONLY / COMPUTED |
| no data | truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))) | NEITHER / COMPUTED |
one bearer
test "one bearer" { 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:09:p")); assert refused(entity_ref("urn:recipe:b-rules:09:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))); expect truth_status == BOTH; expect evaluation_status == COMPUTED;}different bearers
test "different bearers" { 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:09:p")); assert refused(entity_ref("urn:recipe:b-rules:09:q")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}refusal only
test "refusal 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 refused(entity_ref("urn:recipe:b-rules:09:p")); } evaluate truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))); expect truth_status == FALSE_ONLY; expect evaluation_status == COMPUTED;}no data
test "no data" { 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"; }
} evaluate truth(allowed(entity_ref("urn:recipe:b-rules:09:p"))); expect truth_status == NEITHER; expect evaluation_status == COMPUTED;}Counterfactual
Section titled “Counterfactual”Mutation: rule Allow defeasible → rule Allow; rejection LDC-E0201. Scenes that delete a fragment are marked explicitly in the table.
Boundary
Section titled “Boundary”BOTH at truth is an ordinary COMPUTED answer; a conflict of positions separately carries UNRESOLVED_NORMATIVE_CONFLICT. A kept conflict does not mean logical explosion.
Pitfall
Section titled “Pitfall”Without a priority edge the result stays BOTH; opposite conclusions about different persons do not conflict.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.