Skip to content
docs
Arxo ↗

Conflict without a winner

For LLMs7 sections

I want to keep both opposite supports when there is no priority.

Without a priority edge the result stays BOTH.

Incorrect form
// 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.

Arxo Law
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); }
Facts and choiceQuestionAnswer
one bearertruth(allowed(entity_ref("urn:recipe:b-rules:09:p")))BOTH / COMPUTED
different bearerstruth(allowed(entity_ref("urn:recipe:b-rules:09:p")))TRUE_ONLY / COMPUTED
refusal onlytruth(allowed(entity_ref("urn:recipe:b-rules:09:p")))FALSE_ONLY / COMPUTED
no datatruth(allowed(entity_ref("urn:recipe:b-rules:09:p")))NEITHER / COMPUTED
one bearer
Arxo Law
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
Arxo Law
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
Arxo Law
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
Arxo Law
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;
}

Mutation: rule Allow defeasible → rule Allow; rejection LDC-E0201. Scenes that delete a fragment are marked explicitly in the table.

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.

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.