Skip to content
docs
Arxo ↗

State a transitional exception explicitly

For LLMs7 sections

I want to keep the former permission for old relations during a transitional year.

Two opposite norms without a declared advantage are not chosen by age:

Incorrect form
// Transition и NewOrder есть, TransitionWins отсутствует.
Arxo Law
language "law.core" version "0.2";
package recipes.e.r05 version "0.1.0";
namespace "urn:recipe:e-time:05";
entity Person;
relation registered(p: Person);
relation began(p: Person, on: Date);
relation permitted(p: Person);
rule NewOrder defeasible {
effective [@2026-01-01, infinity);
for p: Person;
when registered(p);
then not permitted(p);
}
rule Transition defeasible {
effective [@2026-01-01, @2027-01-01);
for p: Person; for on: Date;
when registered(p) and began(p, on) and on < @2026-01-01;
then permitted(p);
}
priority TransitionWins { prefer Transition over NewOrder; reason explicit_exception; }
Facts / cutQuestionAnswer
old relation, 2026permittedTRUE_ONLY
new relation, 2026permittedFALSE_ONLY
old relation, 2027permittedFALSE_ONLY
old relation, no prioritypermittedBOTH
old relation keeps transition
Arxo Law
test "old relation keeps transition" {
given {
context {
legal_time @2026-06-01;
decision_time @2027-12-31T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:05:a"));
assert began(entity_ref("urn:recipe:e-time:05:a"), @2025-12-01);
}
evaluate truth(permitted(entity_ref("urn:recipe:e-time:05:a")));
expect truth_status == TRUE_ONLY;
}
new relation follows new order
Arxo Law
test "new relation follows new order" {
given {
context {
legal_time @2026-06-01;
decision_time @2027-12-31T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:05:a"));
assert began(entity_ref("urn:recipe:e-time:05:a"), @2026-02-01);
}
evaluate truth(permitted(entity_ref("urn:recipe:e-time:05:a")));
expect truth_status == FALSE_ONLY;
}
expired transition stops applying
Arxo Law
test "expired transition stops applying" {
given {
context {
legal_time @2027-01-01;
decision_time @2027-12-31T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:05:a"));
assert began(entity_ref("urn:recipe:e-time:05:a"), @2025-12-01);
}
evaluate truth(permitted(entity_ref("urn:recipe:e-time:05:a")));
expect truth_status == FALSE_ONLY;
}
missing priority yields both
Arxo Law
test "missing priority yields both" {
given {
context {
legal_time @2026-06-01;
decision_time @2027-12-31T09:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:05:a"));
assert began(entity_ref("urn:recipe:e-time:05:a"), @2025-12-01);
}
evaluate truth(permitted(entity_ref("urn:recipe:e-time:05:a")));
expect truth_status == BOTH;
}

runs.without removes TransitionWins and gets BOTH. teaches separately pins rejection of a double effective, so the transition window is not replaced by a second line.

Transitional law is set by the act. It is not chosen automatically by an earlier edition and does not mean lex mitior; the edition axis of analysis is a different question.

Continuation of the former regulation is expressed as a separate norm; the year boundary and the advantage must be explicit.

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

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