docs← Back to article

Markdown for LLMs

Require an issue to be established within a deadline

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

Download this articlePlain text ↗
# Require an issue to be established within a deadline

## Intent

I want to set the party, the subject, and the window of proof.

## Wrong form and why it stays silent

```text title="Incorrect form"
bears_burden(p, established_issue(c, Delivery))
```

The relation’s argument is an Issue term, not a nested proposition. Establishment of the issue is the duty’s goal. Silence after the window does not prove a violation.

## Correct form

Minimal executable witness below.

```law
language "law.core" version "0.2";
package recipes.d.r03 version "0.1.0";
namespace "urn:recipe:d-evidence:03";

entity Party;
entity Case;
enum Issue { Delivery; Payment; }
relation claims(c: Case, p: Party, i: Issue);
relation established_issue(c: Case, i: Issue);
relation bears_burden(p: Party, i: Issue);
rule Prove strict {
    for c: Case; for p: Party; for i: Issue;
    when claims(c,p,i);
    then duty ProveIssue { bearer p; goal achievement {
        condition established_issue(c,i); window [@2026-09-01, @2026-09-10);
    } };
}
```

## Frozen execution scene

In the table P and Q are different entities of the page, C is a case; full identifiers are pinned in the scenes.

| Input on 13.09.2026 (a different date is named in the scene) | Question | Answer |
|---|---|---|
| window open | `positions()` | `position(ProveIssue, ACTIVE);` / `COMPUTED` |
| window closed without an answer | `positions()` | `position(ProveIssue, UNDETERMINED);` / `COMPUTED` |
| established inside the window | `positions()` | `position(ProveIssue, SATISFIED);` / `COMPUTED` |
| other issue | `positions()` | `position(ProveIssue, UNDETERMINED);` / `COMPUTED` |

```law
test "window open keeps duty active" {
    given {
        context {
            legal_time @2026-09-05;
            decision_time @2026-09-05T09:00:00Z;
            knowledge_time @2026-09-13T09:00:00Z;
            timezone "UTC";
        }
        assert claims(entity_ref("urn:recipe:d-evidence:03:case"),entity_ref("urn:recipe:d-evidence:03:p"),Delivery);
    }
    evaluate positions();
    expect position(ProveIssue, ACTIVE);
    expect evaluation_status == COMPUTED;

}
```

```law
test "closed window without answer stays undetermined" {
    given {
        context {
            legal_time @2026-09-13;
            decision_time @2026-09-13T09:00:00Z;
            knowledge_time @2026-09-13T09:00:00Z;
            timezone "UTC";
        }
        assert claims(entity_ref("urn:recipe:d-evidence:03:case"),entity_ref("urn:recipe:d-evidence:03:p"),Delivery);
    }
    evaluate positions();
    expect position(ProveIssue, UNDETERMINED);
    expect evaluation_status == COMPUTED;

}
```

```law
test "established inside window satisfies" {
    given {
        context {
            legal_time @2026-09-13;
            decision_time @2026-09-13T09:00:00Z;
            knowledge_time @2026-09-13T09:00:00Z;
            timezone "UTC";
        }
        assert claims(entity_ref("urn:recipe:d-evidence:03:case"),entity_ref("urn:recipe:d-evidence:03:p"),Delivery); assert established_issue(entity_ref("urn:recipe:d-evidence:03:case"),Delivery) { valid [@2026-09-05, infinity); }
    }
    evaluate positions();
    expect position(ProveIssue, SATISFIED);
    expect evaluation_status == COMPUTED;

}
```

```law
test "different issue leaves duty undetermined" {
    given {
        context {
            legal_time @2026-09-13;
            decision_time @2026-09-13T09:00:00Z;
            knowledge_time @2026-09-13T09:00:00Z;
            timezone "UTC";
        }
        assert claims(entity_ref("urn:recipe:d-evidence:03:case"),entity_ref("urn:recipe:d-evidence:03:p"),Delivery); assert established_issue(entity_ref("urn:recipe:d-evidence:03:case"),Payment);
    }
    evaluate positions();
    expect position(ProveIssue, UNDETERMINED);
    expect evaluation_status == COMPUTED;

}
```

## Counterfactual

Diagnostic mutation (check) — LDC-E2109.

Original fragment:

```text
when claims(c,p,i);
```

Replacement:

```text
when claims(c,p,i) and bears_burden(p, established_issue(c,i));
```

The paired scenes above pin the change of outcome.

## Boundary

Two topics of proof are distinguished by the Issue term. Non liquet is allowed by the act: a violation needs explicit non-performance, completeness, or an authority decision. The claims condition is deliberately left after the issue is established so that the position is visible as SATISFIED.

The position status is read on the decision date, not on the law date: the open-window scene names a decision moment inside the window, otherwise the answer would be undetermined.

## Pitfall

The relation takes an Issue term, not a nested proposition; establishment of the issue is the duty's goal. Silence after the window does not prove a violation.