docs← Back to article

Markdown for LLMs

Constraints: pitfalls

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

Download this articlePlain text ↗
# Constraints: pitfalls

Wrong forms, silent outcomes, `LDC-E` diagnostics, typical mistakes of
formalizers and AI agents, and how to detect them.

## 1. Expecting inference from a constraint

`require Y` with true `when X` does not establish `Y`: the `Y` query
answers Not established, not refuted, the constraint verdict is undetermined. Proven
by the section’s run: case 02 of the enrolled-needs-consent teaching package (`enrolled`
without `consent`) answers Not established, not refuted on the `has_consent` query. The AI
agent reading a constraint as “a rule backwards” gets a vacuous example.
Detection: mentally delete `require` — if the meaning is lost, it was a
rule.

## 2. Expecting a sanction from failure

A constraint’s violated verdict is issue `CONSTRAINT_VIOLATED`, not a legal
violation: a sanction is encoded by a separate ordinary rule on established
facts/position statuses. Whoever equates the finding with a
violation builds a hidden evaluator side effect — directly forbidden by the
language.

## 3. A constraint as a producer of its strata

A constraint evaluates after the producer strata it depends on and cannot
be a producer for them. An attempt at “the constraint establishes a
fact for the rule that feeds it” is a cycle; in 0.1 — a stratification
rejection. Rules infer, constraints check; one direction only.

## 4. Body composition: repeats and silent skips

`scope` and `effective` — at most one clause per block, a repeat is
`LDC-E1329` (as for a rule). Every written element is either parsed or
rejected statically (`LDC-E0201`); silent skipping is forbidden — a
constraint lowered without a written clause applies wider than written.
Forms without a defined expansion
(`source_anchor_item`, `interpretation`, `metadata_item`) are rejected,
not ignored.

## 5. `effective` outside the law date — silent non-application

A constraint with `effective` outside the law date does not apply:
no finding, no issue, no verdict. Silence is the norm here, but an
author forgetting the source rule’s window reads it as “composition
coherent”. Detection: check the case’s law date against the
constraint’s `effective` before rejoicing at empty results.

## 6. An unexecutable body — the constraint is not evaluated

Formulas outside the executable subset or a range-restriction breach —
issue `NON_EXECUTABLE_CONSTRAINT` (warning, related nodes are the
constraint itself), the constraint declares it and is not evaluated.
Detection: an issue in the document
instead of the expected findings.

## 7. Header parameters and binders are mutually exclusive

`constraint C(x: T) { … }` instead of `for x: T;` in the body:
both forms at once is a rejection. Constraint semantics
and binder order are preserved — the form choice is readability, not
meaning.