Skip to content
docs
Arxo ↗

Two incompatible duties

For LLMs6 sections

I want to name the incompatibility of the goals of two duties of one person.

Incorrect form
// Разные имена целей first и second доказывают несовместимость.

A difference of text is not a proof. A scene with explicit incompatible on the templates yields a conflict; without it both duties exist without established incompatibility.

Arxo Law
language "law.core" version "0.2";
package recipes.a.r15 version "0.1.0";
namespace "urn:recipe:a-positions:15";
entity Person;
relation registered(p: Person);
relation done(p: Person);
relation first(p: Person);
relation second(p: Person);
rule A strict { for p: Person; when registered(p); then duty First { bearer p; achieve first(p) during [@2026-09-01, @2026-09-10]; }; }
rule B strict { for p: Person; when registered(p); then duty Second { bearer p; achieve second(p) during [@2026-09-01, @2026-09-10]; }; }
Facts and snapshotQuestionAnswer
different goals without a proof; 2026-09-05positions()position(First, ACTIVE); expect position(Second, ACTIVE); / COMPUTED
explicit incompatibility; 2026-09-05positions()position(First, ACTIVE); expect position(Second, ACTIVE); / UNRESOLVED_NORMATIVE_CONFLICT
different goals coexist without proof
Arxo Law
test "different goals coexist without 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 registered(entity_ref("urn:recipe:a-positions:15:p"));
}
evaluate positions();
expect position(First, ACTIVE); expect position(Second, ACTIVE);
expect evaluation_status == COMPUTED;
}
explicit incompatibility conflicts
Arxo Law
test "explicit incompatibility conflicts" {
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 registered(entity_ref("urn:recipe:a-positions:15:p"));
}
evaluate positions();
expect position(First, ACTIVE); expect position(Second, ACTIVE);
expect evaluation_status == UNRESOLVED_NORMATIVE_CONFLICT;
expect issue(UNRESOLVED_NORMATIVE_CONFLICT);
}

The case of the second scene is passed in full through caseJson; the standard incompatibility relation is given by its full StableId, not by a same-named local predicate.

JSON
{
"assertions": [
{
"evidence": [],
"id": "urn:recipe:a-positions:15#assert-h14a3223b85ac0852ce472da8ca121bb261291552e0839ad764dff592b0631586",
"kind": "assertion",
"literal": {
"args": [
{
"id": "urn:recipe:a-positions:15:p",
"kind": "entity_ref"
}
],
"kind": "literal",
"polarity": "positive",
"predicate": "urn:recipe:a-positions:15#registered"
},
"origin": "source_asserted",
"package": "urn:recipe:a-positions:15"
},
{
"evidence": [],
"id": "urn:recipe:a-positions:15#assert-h29a06e0bbdfbbe1f4a5d94530230aec295c75efb75b5e9963f1cbada2325261a",
"kind": "assertion",
"literal": {
"args": [
{
"id": "urn:recipe:a-positions:15#First",
"kind": "const_ref"
},
{
"id": "urn:recipe:a-positions:15#Second",
"kind": "const_ref"
}
],
"kind": "literal",
"polarity": "positive",
"predicate": "urn:law:std#incompatible"
},
"origin": "source_asserted",
"package": "urn:recipe:a-positions:15"
}
],
"context": {
"decisionTime": "2026-09-05T09:00:00+05:00",
"knowledgeTime": "2026-09-30T09:00:00+05:00",
"legalTime": "2026-09-05",
"timezone": "Asia/Almaty"
},
"options": {}
}

Mutation: bearer p; → “; rejection LDC-E1305. Additional counterfactuals are shown as separate scenes.

Incompatibility applies only with one bearer and overlapping windows. A solver needs a pinned profile and a checkable certificate; here an explicit relation is used.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.