docs← Back to article

Markdown for LLMs

Precedent: boundaries

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

Download this articlePlain text ↗
# Precedent: boundaries

What the construct does NOT do: limits, reserved values, neighbouring constructs and the selection rule.

## Does not do

- **Not know the word argue.** There is no `argue` keyword in the grammar
  (verified against the grammar during this research). Side
  argumentation as a construct is absent: the "case differs" point is expressed
  by the precedent's factor sets and case facts, not by a separate declaration.
- **Not know courts as entities.** There is no standalone `court` declaration;
  `court` is only an item inside `precedent`, naming a preorder vertex from
  the vocabulary's `courts`. A court's characteristics (bench,
  jurisdiction, instance outside the line) are invisible to the profile.
- **Not executed by ordinary queries.** The profile's own answer (the
  `BINDING`/`DISTINGUISHED`/`INAPPLICABLE`/`JUDGMENT_PENDING`/`NOT_YET`/
  `OVERRULED` statuses, `constraint`, `caseBase`) is available ONLY via the
  `precedent` query kind. `truth` queries see only baseline execution
  of the generated holdings — no status names, no `distinguishedBy`/`missing`.
- **Not weigh or measure similarity.** Binding is set inclusion;
  factor magnitude and similarity metrics are outside the v1
  slice. Two cases are either linked
  a fortiori or named as differing — no halftones.
- **Not repeal another holding.** Repeal is declared by the repealed precedent
  in its own package as an `overruled (date, reference)` pair; there is no
  cross-package `overrules`. Lifecycle ownership is
  as with editions.
- **Not recompute agreesWithRules in the core.** The v1 checking core verifies
  statuses, `constraint` and `caseBase`, but not the rule-declaration agreement
  flag — the named boundary (needs baseline computation inside the
  core).
- **Not check maximality of preferred extensions** — but that is the
  neighbouring argumentation profile's boundary, not
  precedent's.
- **Not cut the past off silently.** A holding holds from `decided` inclusive;
  the date is mandatory exactly because without it the holding would have no
  force window. Edition projection lifts the holding like a
  lapsed edition.

## Reserved and closed

- The vocabulary is closed: a factor undeclared in it does not exist for the
  profile. Violation — `LDC-E2701`, a factor on both sides —
  `LDC-E2702`.
- The outcome is a literal with polarity over signature variables (`LDC-E2703`);
  `ratio` is a subset of the winning side's `X_s` (`LDC-E2704`).
- `limits.maxPrecedents` defaults to 64; overflow is fatal `RESOURCE_LIMIT`.
  No partial conclusion is published then.
- Generated-node identifiers are deterministic: `<P>/holding`,
  `<P>/over/<R>`, `<P>/ratio`, the `<V>/reason_model` reading.
- Profile keywords (`factors`, `precedent`, `plaintiff`, `defendant`,
  `courts`, `court`, `decided`, `outcome`, `ratio`, `overruled`) are contextual
  (like `map`): not reserved outside the profile.

## Neighbours and the selection rule

- Holdings and distinguishing are expressible via `sources`,
  `interpretations`, `rules` and `priorities` — the profile is not a monopoly
  but a named superstructure. Selection rule: only the conclusion needed — base
  forms; binding statuses, `constraint`, `caseBase`, `agreesWithRules` needed —
  the profile.
- `sources` vs profile: norm address vs case similarity. An
  `@source` anchor on `factors`/`precedent` is allowed by the grammar
  (`source_anchor_item` in both declarations) and traces the line to the act —
  as in the teaching package, where every declaration carries `@source` to
  decision fragments.
- `interpretation` vs `ratio`: the reason model lives in the
  `<V>/reason_model` reading with `contested` status — the
  result-vs-reason-model choice is made by the reading choice, not by a
  precedent flag.
- `priority` vs `prefer over`: the latter is the author's declaration of
  which general rule beats the holding; holding-vs-holding priority
  of the same vocabulary is not written by the author — the compiler generates
  it from rank and dates.
- `judgment` vs distinguishing: a judgment factor without a court
  answer gives `JUDGMENT_PENDING` with a working holding, not `DISTINGUISHED`.
- `overruled` in a precedent vs edition lifting: the same lifecycle
  ownership — repeal declared at the repealed, window `[decided, T)`.