docs← Back to article

Markdown for LLMs

Vocabulary: boundaries

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

Download this articlePlain text ↗
# Vocabulary: boundaries

What the construct does NOT do in 0.2: limits, closed lists,
neighbouring constructs, and the selection rule.

## Does not do

- **Does not infer names.** Names are not inferred from use but verified:
  an undeclared name is a rejection, not “a new symbol” (`LDC-E1330`,
  `LDC-E2101`, `LDC-E2102`). The vocabulary is closed from above: what is
  not declared does not exist.
- **Does not change truth by kind.** A relation’s `kind` is metadata for
  analysis and policies: it does not change truth semantics. `empirical` on
  an inferred head and `derived` on a case fact are not rejections but lies
  to the reader.
- **Does not pick on a key conflict.** `KEY_CONFLICT` is a data-quality
  issue: the evaluator fires on both facts and deletes nothing.
  Confirmed by runs: two regions give Established + issue, while the rule
  applies twice.
- **Does not compare foreign enumerations.** Members of different
  enumerations are incomparable (`TYPE_ERROR` at runtime, `LDC-E2122` at
  `check`); members have no order.
- **Does not convert implicitly.** No implicit conversions: an
  argument must fit the parameter up a subtype chain, otherwise `LDC-E2104`.
- **Does not call the judge in vain.** A judgment-channel request leaves only
  from a live rule: if another conjunct already failed, the judge is not
  called.

## Reserved and closed

- Default visibility is `internal`; a `pkg::Symbol` reference only into
  `pub`. `pub enum` exports the type and all members: there is no
  partly-public enumeration.
- An enumeration’s domain is the declared members whole.
- The `kind` list: `empirical` | `institutional` | `evaluative` |
  `derived` | `normative_auxiliary` | `external`.
- One identity for three name spellings (`high`, `RiskLevel.high`,
  `pkg::high` — one constant reference).
- `import` without context: compiling is red with `LDC-E1104`/`LDC-E1105` on
  green `check` — compile with an imports context; the standard preludes
  are exempt.
- The language version is checked exactly: `"0.2.0"` is not
  `"0.2"` — `LDC-E1401`. The standard-library name on `package` is reserved
  (`LDC-E1113`).

## Neighbours and selection rule

- `entity` with fields vs `relation`: immutable internal goes in a field;
  case-established goes in a relation. See the
  [facts-and-evidence page](/constructs/facts-and-evidence/).
- `relation` vs `definition`: an assertion signature against a named
  qualification; a definition must not be declared as a separate `relation`
  (`LDC-E1201`). See the [definitions page](/constructs/definition/).
- `const` vs fact: a named program value against case support; an
  individual is named only by `const`.
- `key` vs priority/table: data integrity against outcome choice — a key
  does not choose. See the [priority page](/constructs/priority/).
- `external judgment relation` vs an ordinary one: answered by an
  organ, not by the program; while no answer exists — `REQUIRES_JUDGMENT`.
  See the [judgment-channel page](/constructs/judgment-channel/).