docs← Back to article

Markdown for LLMs

State a transitional exception explicitly

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# State a transitional exception explicitly

## Intention

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

## Incorrect form and why it stays silent

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

```text title="Incorrect form"
// Transition и NewOrder есть, TransitionWins отсутствует.
```

## Correct form

```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; }
```

## Frozen execution scene



| Facts / cut | Question | Answer |
|---|---|---|
| old relation, 2026 | permitted | TRUE_ONLY |
| new relation, 2026 | permitted | FALSE_ONLY |
| old relation, 2027 | permitted | FALSE_ONLY |
| old relation, no priority | permitted | BOTH |

```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;
}
```

```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;
}
```

```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;
}
```

```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;
}
```

## Counterfactual

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.

## Boundary

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.

## Pitfall

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