Markdown for LLMs
Distinguish overdue from waiting for the deadline
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Distinguish overdue from waiting for the deadline
## Intention
I want to check the status at the deadline boundary when non-performance is known.
## Incorrect form and why it stays silent
```text title="Incorrect form"
// Явное not done(p) уже до срока означает VIOLATED.
```
Non-performance before due time is not yet overdue. The closed end is included in the window; the status change comes after it.
## Correct form
```law
language "law.core" version "0.2";
package recipes.zh.r02 version "0.1.0";
namespace "urn:recipe:zh-violation:02";
entity Person;
relation enrolled(p: Person);
relation done(p: Person);
rule Primary defeasible { for p: Person; when enrolled(p);
then duty Main { bearer p; achieve done(p) during [@2026-09-01, @2026-09-10]; };
}
```
## Frozen execution scene
| Facts and snapshot | Question | Answer |
|---|---|---|
| before the window; 2026-08-31 | `positions()` | `position(Main, PENDING);` |
| before the deadline; 2026-09-05 | `positions()` | `position(Main, ACTIVE);` |
| last day; 2026-09-10 | `positions()` | `position(Main, ACTIVE);` |
| after the deadline; 2026-09-11 | `positions()` | `position(Main, VIOLATED);` |
| after the deadline without a failure; 2026-09-11 | `positions()` | `position(Main, UNDETERMINED);` |
```law
test "pending before window" {
given {
context {
legal_time @2026-08-31;
decision_time @2026-08-31T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:02:p")); assert not done(entity_ref("urn:recipe:zh-violation:02:p"));
}
evaluate positions();
expect position(Main, PENDING);
expect evaluation_status == COMPUTED;
}
```
```law
test "active before deadline" {
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 enrolled(entity_ref("urn:recipe:zh-violation:02:p")); assert not done(entity_ref("urn:recipe:zh-violation:02:p"));
}
evaluate positions();
expect position(Main, ACTIVE);
expect evaluation_status == COMPUTED;
}
```
```law
test "active on closing day" {
given {
context {
legal_time @2026-09-10;
decision_time @2026-09-10T12:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:02:p")); assert not done(entity_ref("urn:recipe:zh-violation:02:p"));
}
evaluate positions();
expect position(Main, ACTIVE);
expect evaluation_status == COMPUTED;
}
```
```law
test "violated after deadline" {
given {
context {
legal_time @2026-09-11;
decision_time @2026-09-11T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:02:p")); assert not done(entity_ref("urn:recipe:zh-violation:02:p"));
}
evaluate positions();
expect position(Main, VIOLATED);
expect evaluation_status == COMPUTED;
}
```
```law
test "undetermined after deadline without failure" {
given {
context {
legal_time @2026-09-11;
decision_time @2026-09-11T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:02:p"));
}
evaluate positions();
expect position(Main, UNDETERMINED);
expect evaluation_status == COMPUTED;
}
```
## Counterfactual
Diagnostic mutation `achieve done(p) during [@2026-09-01, @2026-09-10];` → `achieve done(p);`: LDC-E0201. Semantic differences are pinned as separate scenes.
## Boundary
Anticipatory breach is a separate rule of the legal order. It does not arise from negative support before the deadline. Postponements and working days are covered by the time recipes.