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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.