Markdown for LLMs
Precedent: pitfalls
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Precedent: pitfalls
Wrong forms, silent outcomes, `LDC-E` diagnostics, typical mistakes of
formalizers and AI agents, how to detect them. The item marked
"confirmed by run" was reproduced during this research on the installed
`law` (semantics `law.core/0.2`); the rest follows the precedent profile
and the teaching package.
## 1. General rule with strict instead of defeasible strength (confirmed by run)
A generated holding outranks no strict rule with any priority:
the generated `priority_rule` acts inside the defeasible stratum. Symptom —
`FALSE_ONLY` where `TRUE_ONLY` was expected, with a clean `check OK`.
Reproduction: in the `research.precedent.forced_holding` package temporarily swap
`defeasible` on `AdIsNotAnOffer` for `strict` — test `01-bound` fails with
`truth_status == TRUE_ONLY: in the document FALSE_ONLY`. Detection: the
holding's opponent is always `defeasible` (the specimen is the teaching package's
general rule).
## 2. Factor outside the vocabulary — LDC-E2701 (confirmed by run)
A precedent factor undeclared in the vocabulary as a side is a static refusal.
Reproduction during this research (a trial package
outside the corpus, factor name `surprise`):
```text
error LDC-E2701: precedent Pbad: фактор `surprise` не объявлен в словаре как plaintiff (§276.3)
```
Same group: a factor outside the signature and an outcome not over signature
variables (`LDC-E2703`). Detection: check every identifier in the precedent's
`plaintiff`/`defendant`/`outcome` against the vocabulary before running.
## 3. Factor on both sides — LDC-E2702
A factor's side is a vocabulary property; one factor in both lists is
a refusal. AI agents often duplicate a "key" factor into both sides "for
reliability" — that is a refusal, not reinforcement. Detection: the side lists
must not overlap.
## 4. ratio outside X_s — LDC-E2704
`ratio` must be a subset of the winning side's set; a ground the court never
found must not go into `ratio`. Same group: `overruled` earlier than
`decided`, a reference to an unknown decision. Detection: check `ratio ⊆ X_s`
as a set inclusion by hand.
## 5. Domain not binding all signature variables
Without a domain, a holding with an empty winning-side set would consist of
`not_known` alone and would not bind the head. Symptom — the holding
stays silent where facts seem present: the domain reads first,
and its non-firing quenches the whole body. Detection: in `domain` every
signature variable must occur.
## 6. Expecting binding from a persuasive precedent
Courts unlinked by a `courts` chain are incomparable: the holding binds
the case (a fortiori), but a conflict with another-outcome holding resolves not
by priority but by honest conflict. The mistake is
reading `BINDING` as "beats any rival": only a higher or equal later court
dominates. In the teaching package the three jurisdictions are incomparable on
purpose.
## 7. Searching for argue and court as declarations
There is no `argue` keyword in the grammar, and no standalone `court` either
(verified against the grammar during the research). A `court HIGH;` outside `precedent` is
a syntax error; a "side argument" is written as a plain rule, not a profile
construct. Detection: `court` only inside `precedent Name of Vocabulary {
… }`.
## 8. Profile without prefer over against a statute — silent BOTH
Without `prefer over` the holding and the general rule are equal: the profile
says `FORCED_*`, while baseline gives an honest conflict. Not a
lowering defect but design: which general rule beats the holding is known by
the author. The mistake is reading profile-vs-baseline divergence as
breakage; the only true lowering-defect marker is `agreesWithRules = false`.
## 9. Open judgment question read as distinguishing
A side-s̄ judgment factor without a court answer gives
`JUDGMENT_PENDING`, not `DISTINGUISHED`: the baseline holding then
FIRES (`not_known` satisfied by silence), and that is not a mismatch.
Anyone quenching the holding "by hand" on a judgment factor breaks
`agreesWithRules`. In the teaching package this is `mere_puff`.
## 10. Base consistency read as a refusal
`LDC-W2705` is a warning, not an error: courts contradict each other as a
matter of fact, and the law must show it. Trying to "repair" the base
by deleting a precedent destroys data instead of the diagnostic.