Markdown for LLMs
Establish a violation
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Establish a violation
## Intention
I want to distinguish proven non-performance from missing information.
## Incorrect form and why it stays silent
```text title="Incorrect form"
// Срок истёк, done(p) в деле нет: expect position(Main, VIOLATED).
```
A violation requires established absence of achievement. Missing a record does not give negative support; the counterfactual removes exactly the explicit negation.
## Correct form
```law
language "law.core" version "0.2";
package recipes.zh.r01 version "0.1.0";
namespace "urn:recipe:zh-violation:01";
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 |
|---|---|---|
| failure established; 2026-09-13 | `positions()` | `position(Main, VIOLATED);` |
| non-performance not presented; 2026-09-13 | `positions()` | `position(Main, UNDETERMINED);` |
| performance established; 2026-09-13 | `positions()` | `position(Main, SATISFIED);` |
| mistaken expectation of a violation; 2026-09-13 | `positions()` | `position(Main, VIOLATED);`; expected FAIL |
```law
test "established failure violates" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:01:p")); assert not done(entity_ref("urn:recipe:zh-violation:01:p"));
}
evaluate positions();
expect position(Main, VIOLATED);
expect evaluation_status == COMPUTED;
}
```
```law
test "unclaimed non-performance stays undetermined" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:01:p"));
}
evaluate positions();
expect position(Main, UNDETERMINED);
expect evaluation_status == COMPUTED;
}
```
```law
test "established performance satisfies" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:01:p")); assert done(entity_ref("urn:recipe:zh-violation:01:p"));
}
evaluate positions();
expect position(Main, SATISFIED);
expect evaluation_status == COMPUTED;
}
```
```law
test "mistaken violation expectation" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert enrolled(entity_ref("urn:recipe:zh-violation:01:p"));
}
evaluate positions();
expect position(Main, VIOLATED);
expect evaluation_status == COMPUTED;
}
```
## Counterfactual
Diagnostic mutation deleting the duty-holder line: LDC-E1305. Semantic differences are pinned as separate scenes.
## Boundary
Here the explicit non-performance fact applies to the whole achievement window. Raw action records are first bound to time; absence of an event in an incomplete journal is not such a fact.