Skip to content
docs
Arxo ↗

Shift the burden after a presumption

For LLMs7 sections

I want to change the party to whom the rule assigns proof.

Incorrect form
priority Shift { prefer Release over Default; reason explicit_exception; } // само по себе не создаёт must_prove(b)

Priority resolves a clash of two conclusions about one party. The other party is assigned the burden by a standalone Transfer rule; the duty window and goal are added as in Require an issue to be established within a deadline.

Arxo Law
language "law.core" version "0.2";
package recipes.d.r02 version "0.1.0";
namespace "urn:recipe:d-evidence:02";
entity Party;
relation dispute(a: Party, b: Party);
relation presumed(a: Party);
relation must_prove(p: Party);
rule Default defeasible { for a: Party; for b: Party; when dispute(a,b); then must_prove(a); }
rule Release defeasible { for a: Party; for b: Party; when dispute(a,b) and presumed(a); then not must_prove(a); }
rule Transfer defeasible { for a: Party; for b: Party; when dispute(a,b) and presumed(a); then must_prove(b); }
priority Shift { prefer Release over Default; reason explicit_exception; }

In the table P and Q are different entities of the page, C is a case; full identifiers are pinned in the scenes.

Input on 13.09.2026 (a different date is named in the scene)QuestionAnswer
ordinary allocationtruth(must_prove(P))TRUE_ONLY / COMPUTED
party releasedtruth(must_prove(P))FALSE_ONLY / COMPUTED
other party assignedtruth(must_prove(Q))TRUE_ONLY / COMPUTED
without the transfer ruletruth(must_prove(Q))NEITHER / COMPUTED
default burden on first party
Arxo Law
test "default burden on first party" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00Z;
knowledge_time @2026-09-13T09:00:00Z;
timezone "UTC";
}
assert dispute(entity_ref("urn:recipe:d-evidence:02:p"),entity_ref("urn:recipe:d-evidence:02:q"));
}
evaluate truth(must_prove(entity_ref("urn:recipe:d-evidence:02:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
presumed party released from burden
Arxo Law
test "presumed party released from burden" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00Z;
knowledge_time @2026-09-13T09:00:00Z;
timezone "UTC";
}
assert dispute(entity_ref("urn:recipe:d-evidence:02:p"),entity_ref("urn:recipe:d-evidence:02:q")); assert presumed(entity_ref("urn:recipe:d-evidence:02:p"));
}
evaluate truth(must_prove(entity_ref("urn:recipe:d-evidence:02:p")));
expect truth_status == FALSE_ONLY;
expect evaluation_status == COMPUTED;
}
burden assigned to other party
Arxo Law
test "burden assigned to other party" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00Z;
knowledge_time @2026-09-13T09:00:00Z;
timezone "UTC";
}
assert dispute(entity_ref("urn:recipe:d-evidence:02:p"),entity_ref("urn:recipe:d-evidence:02:q")); assert presumed(entity_ref("urn:recipe:d-evidence:02:p"));
}
evaluate truth(must_prove(entity_ref("urn:recipe:d-evidence:02:q")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
no transfer rule leaves neither
Arxo Law
test "no transfer rule leaves neither" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00Z;
knowledge_time @2026-09-13T09:00:00Z;
timezone "UTC";
}
assert dispute(entity_ref("urn:recipe:d-evidence:02:p"),entity_ref("urn:recipe:d-evidence:02:q")); assert presumed(entity_ref("urn:recipe:d-evidence:02:p"));
}
evaluate truth(must_prove(entity_ref("urn:recipe:d-evidence:02:q")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}

The counterfactual program differs only by the mutation named below; its scene:

missing priority keeps both conclusions
Arxo Law
test "missing priority keeps both conclusions" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00Z;
knowledge_time @2026-09-13T09:00:00Z;
timezone "UTC";
}
assert dispute(entity_ref("urn:recipe:d-evidence:02:p"),entity_ref("urn:recipe:d-evidence:02:q")); assert presumed(entity_ref("urn:recipe:d-evidence:02:p"));
}
evaluate truth(must_prove(entity_ref("urn:recipe:d-evidence:02:p")));
expect truth_status == BOTH;
expect evaluation_status == COMPUTED;
}
Python
>>> import runpy
>>> check = runpy.run_path("docs/recipes/d-evidence/resources/check.py")
>>> check["check_variant"](https://github.com/arxohq/law/blob/master/docs/recipes/d-evidence/2)
'Д2: контрфактуал подтверждён; lawc = lawref'

Diagnostic mutation (check) — LDC-E4108.

Original fragment:

Arxo Law
priority Shift { prefer Release over Default; reason explicit_exception; }

Replacement:

Arxo Law
priority Shift { prefer Missing over Default; reason explicit_exception; }

The paired scenes above pin the change of outcome.

must_prove is a local allocation, not a created duty position. Priority of two compatible duties with different bearers does not by itself extinguish one of them. The normative position is Require an issue to be established within a deadline.

The counterfactual mutation removes priority Shift { prefer Release over Default; reason explicit_exception; }: under the same facts, must_prove of the first party becomes BOTH.

Priority alone does not move the burden: the other party is assigned by a standalone Transfer rule.

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

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