Move a rule onto the edition in force
Intent
Section titled “Intent”I want to execute a norm from the edition in force.
Wrong form and why it stays silent
Section titled “Wrong form and why it stays silent”A fragment with current text cannot be placed in a non-existent edition; the date is determined by its real owner.
fragment CurrentF in MissingCorrect form
Section titled “Correct form”language "law.core" version "0.2";package recipe.i07 version "1.0.0";namespace "urn:recipe:i-sources:07";source Act { kind policy; }edition Old of Act { language ru; officiality unofficial; materialization_status ABSTRACT_ONLY; in_force [@2026-01-01, @2026-07-01); }edition Current of Act { language ru; officiality unofficial; materialization_status ABSTRACT_ONLY; in_force [@2026-07-01, infinity); }fragment OldF in Old { kind article; locator "article/1"; text ru unofficial """Заявление принимается."""; }fragment CurrentF in Current { kind article; locator "article/1"; text ru unofficial """Заявление принимается."""; }entity Person;relation filed(p: Person);relation accepted(p: Person);@source(OldF)@source(CurrentF)rule Accept strict { for p: Person; when filed(p); then accepted(p); }Frozen execution scene
Section titled “Frozen execution scene”The scenes below compare CurrentF and OldF on 13 September; removing the current anchor from a node with two dating anchors leaves only the closed one.
>>> import runpy>>> checks = runpy.run_path("docs/recipes/i-sources/resources/check.py")>>> checks["lifecycle"](https://github.com/arxohq/law/blob/master/docs/recipes/i-sources/7)TrueScene 1; full program.
two anchors establish on current date
language "law.core" version "0.2";package recipe.i07 version "1.0.0";namespace "urn:recipe:i-sources:07";
test "two anchors establish on current date" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00Z; knowledge_time @2026-09-13T09:00:00Z; timezone "UTC"; } assert filed(entity_ref("urn:recipe:i-sources:person")); } evaluate truth(accepted(entity_ref("urn:recipe:i-sources:person"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}Scene 2; @source(CurrentF) is removed.
removed current anchor leaves neither
language "law.core" version "0.2";package recipe.i07 version "1.0.0";namespace "urn:recipe:i-sources:07";
test "removed current anchor 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 filed(entity_ref("urn:recipe:i-sources:person")); } evaluate truth(accepted(entity_ref("urn:recipe:i-sources:person"))); expect truth_status == NEITHER; expect evaluation_status == COMPUTED;}Scene 3; @source(OldF) is removed.
removed old anchor keeps truth
language "law.core" version "0.2";package recipe.i07 version "1.0.0";namespace "urn:recipe:i-sources:07";
test "removed old anchor keeps truth" { given { context { legal_time @2026-09-13; decision_time @2026-09-13T09:00:00Z; knowledge_time @2026-09-13T09:00:00Z; timezone "UTC"; } assert filed(entity_ref("urn:recipe:i-sources:person")); } evaluate truth(accepted(entity_ref("urn:recipe:i-sources:person"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}Scene 4; full program.
old law date still establishes
language "law.core" version "0.2";package recipe.i07 version "1.0.0";namespace "urn:recipe:i-sources:07";
test "old law date still establishes" { given { context { legal_time @2026-06-30; decision_time @2026-09-13T09:00:00Z; knowledge_time @2026-09-13T09:00:00Z; timezone "UTC"; } assert filed(entity_ref("urn:recipe:i-sources:person")); } evaluate truth(accepted(entity_ref("urn:recipe:i-sources:person"))); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}Counterfactual
Section titled “Counterfactual”The teaches mutation reproduces LDC-E5102. Additional variants are checked by the shown adapter call.
Boundary
Section titled “Boundary”Moving an anchor is allowed after checking the ground of the norm in the new edition; mechanical removal of an anchor hides the date.
Pitfall
Section titled “Pitfall”A normative node is excluded if all of its dating editions are inapplicable. This is not disappearance of a case fact.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.