Skip to content
docs
Arxo ↗

Show a defeated position

For LLMs6 sections

I want to see an excluded duty without letting it generate consequences.

Incorrect form
// DEFEATED скрывают из positions или публикуют instance_of как у активной нормы.

The position is visible with payload and createdBy, but its status literals and links are not published. Without a producer there is no position at all; when excluded it exists as DEFEATED.

Arxo Law
language "law.core" version "0.2";
package recipes.zh.r08 version "0.1.0";
namespace "urn:recipe:zh-violation:08";
entity Person;
relation enrolled(p: Person);
relation done(p: Person);
relation excluded(p: Person);
relation followup(p: Person);
rule Primary defeasible { for p: Person; when enrolled(p);
then duty Main { bearer p; achieve done(p) during [@2026-09-01, @2026-09-10]; };
unless excluded(p);
}
rule Follow strict { for pos: PositionInstance; for p: Person;
when instance_of(pos, Main) and bearer_of(pos, p); then followup(p);
}
Facts and snapshotQuestionAnswer
no ground; 2026-09-13positions()not positions_present();
ground excluded; 2026-09-13positions()position(Main, DEFEATED);
the link is not published; 2026-09-13truth(followup(entity_ref("urn:recipe:zh-violation:08:p")))truth_status == NEITHER;
surviving ground; 2026-09-13truth(followup(entity_ref("urn:recipe:zh-violation:08:p")))truth_status == TRUE_ONLY;
proviso removed; 2026-09-13truth(followup(entity_ref("urn:recipe:zh-violation:08:p")))truth_status == TRUE_ONLY;
no ground creates nothing
Arxo Law
test "no ground creates nothing" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
}
evaluate positions();
expect not positions_present();
expect evaluation_status == COMPUTED;
}
excluded ground defeats visibly
Arxo Law
test "excluded ground defeats visibly" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:08:p")); assert excluded(entity_ref("urn:recipe:zh-violation:08:p"));
}
evaluate positions();
expect position(Main, DEFEATED);
expect evaluation_status == COMPUTED;
}
unpublished linkage stays unknown
Arxo Law
test "unpublished linkage stays unknown" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:08:p")); assert excluded(entity_ref("urn:recipe:zh-violation:08:p"));
}
evaluate truth(followup(entity_ref("urn:recipe:zh-violation:08:p")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}
surviving ground supports followup
Arxo Law
test "surviving ground supports followup" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:08:p"));
}
evaluate truth(followup(entity_ref("urn:recipe:zh-violation:08:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
removed clause restores followup
Arxo Law
test "removed clause restores followup" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:08:p")); assert excluded(entity_ref("urn:recipe:zh-violation:08:p"));
}
evaluate truth(followup(entity_ref("urn:recipe:zh-violation:08:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
Python
>>> import runpy
>>> check = runpy.run_path("docs/recipes/zh-violation/resources/check.py")
>>> check["check_proof"](https://github.com/arxohq/law/blob/master/docs/recipes/zh-violation/8)
'Ж8: структура доказательства проверена; lawc = lawref'

Diagnostic mutation rule Primary defeasible → rule Primary strict: LDC-E4110. Semantic differences are pinned as separate scenes.

DEFEATED applies to the losing ground, not to a lifecycle transition. It is not added to statusHistory; the defeat node must name the losing application.

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

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