Markdown for LLMs
Move a rule onto the edition in force
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Move a rule onto the edition in force
## Intent
I want to execute a norm from the edition in force.
## 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.
```text title="Incorrect form"
fragment CurrentF in Missing
```
## Correct form
```law
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
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.
```python
>>> 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)
True
```
Scene 1; full program.
```lawtest
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.
```lawtest
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.
```lawtest
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.
```lawtest
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
The `teaches` mutation reproduces `LDC-E5102`. Additional variants are checked by the shown adapter call.
## 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
A normative node is excluded if all of its dating editions are inapplicable. This is not disappearance of a case fact.