Skip to content
docs
Arxo ↗

Exempt from the sanction, keep the offence

For LLMs6 sections

I want to exclude the sanction without destroying the qualification of the act.

Incorrect form
// Освобождение оформляют исключением из квалификации offence.

Exemption is addressed to the sanction, not to the offence. Fine becomes DEFEATED, but offence stays TRUE_ONLY.

Arxo Law
language "law.core" version "0.2";
package recipes.zh.r05 version "0.1.0";
namespace "urn:recipe:zh-violation:05";
entity Person;
relation enrolled(p: Person);
relation done(p: Person);
relation act(p: Person);
relation offence(p: Person);
relation exempt(p: Person);
rule Qualify strict { for p: Person; when act(p); then offence(p); }
rule Impose defeasible { for p: Person; when offence(p);
then duty Fine { bearer p; achieve done(p) during [@2026-09-01, @2026-09-10]; };
unless exempt(p);
}
Facts and snapshotQuestionAnswer
ordinary sanction; 2026-09-05positions()position(Fine, ACTIVE);
exemption; 2026-09-13positions()position(Fine, DEFEATED);
offence kept; 2026-09-13truth(offence(entity_ref("urn:recipe:zh-violation:05:p")))truth_status == TRUE_ONLY;
proviso removed; 2026-09-05positions()position(Fine, ACTIVE);
ordinary sanction active
Arxo Law
test "ordinary sanction active" {
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 act(entity_ref("urn:recipe:zh-violation:05:p"));
}
evaluate positions();
expect position(Fine, ACTIVE);
expect evaluation_status == COMPUTED;
}
exemption defeats sanction
Arxo Law
test "exemption defeats sanction" {
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 act(entity_ref("urn:recipe:zh-violation:05:p")); assert exempt(entity_ref("urn:recipe:zh-violation:05:p"));
}
evaluate positions();
expect position(Fine, DEFEATED);
expect evaluation_status == COMPUTED;
}
offence composition survives
Arxo Law
test "offence composition survives" {
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 act(entity_ref("urn:recipe:zh-violation:05:p")); assert exempt(entity_ref("urn:recipe:zh-violation:05:p"));
}
evaluate truth(offence(entity_ref("urn:recipe:zh-violation:05:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
removed clause restores sanction
Arxo Law
test "removed clause restores sanction" {
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 act(entity_ref("urn:recipe:zh-violation:05:p")); assert exempt(entity_ref("urn:recipe:zh-violation:05:p"));
}
evaluate positions();
expect position(Fine, ACTIVE);
expect evaluation_status == COMPUTED;
}

Qualify was made defeasible with unless exempt(p): the qualification wrongly disappeared.

exemption on composition removes offence
Arxo Law
test "exemption on composition removes offence" {
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 act(entity_ref("urn:recipe:zh-violation:05:p")); assert exempt(entity_ref("urn:recipe:zh-violation:05:p"));
}
evaluate truth(offence(entity_ref("urn:recipe:zh-violation:05:p")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}
Python
>>> import runpy
>>> check = runpy.run_path("docs/recipes/zh-violation/resources/check.py")
>>> check["check_variant"](https://github.com/arxohq/law/blob/master/docs/recipes/zh-violation/5)
'Ж5: контрфактуал подтверждён; lawc = lawref'

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

A rule that excludes the offence itself is modelled differently. Here a direct defeater of the sanction is shown; the full liability layer is a separate concern.

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

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