# 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/).