Markdown for LLMs
Strict rules: boundaries
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Strict rules: boundaries What the construct does NOT do in 0.2: limits, closed lists, neighbouring constructs, and the selection rule. ## Does not do - **Does not refuse.** An unfired strict rule gives no Refuted: absence of inference is Not established, not refuted. Negative support comes only from explicit negations — a `not p(x)` head, a negative fact, closure. - **Is not defeated.** Nobody removes strict support: neither defeater, nor priority, nor conditional priority. Two strict inferences with opposite heads are both preserved — Contradiction. - **Does not read contested premises.** A fact in Contradiction does not establish a bare body literal: the rule stays silent where a naive reading expected firing. Deliberate work with a contested fact goes through `supported(P)` with justification. - **Does not infer from a court’s silence.** A judgment-channel relation in the body yields `REQUIRES_JUDGMENT` at any rule strength: `strict` does not turn “the court decides” into “computed”. - **Does not bind variables by comparison.** Comparison, negation, and `not_known` do not bind variables: the head must rest on a positive literal. ## Reserved and closed - Rule strength is mandatory: use `strict`, `defeasible`, or `defeater`; without it the parser rejects (`LDC-E0201`). - `scope`, `effective`, `defeat` — at most one clause per block; a repeat — `LDC-E1329`. Several `when` clauses — a conjunction in written order; several `then` clauses — several head rules. - Names `event`, `case`, `calendar`, `action` — hard keywords: the binder `for event: …` gives `LDC-E0203`. - Underscore `_` is legal only as an argument of a positive body literal (“there exists a value”); in a head, under `not`, in a status test, and in a case — `LDC-E0207`. ## Neighbours and selection rule - `strict` vs `defeasible`: exceptions possible in principle — `defeasible`; impossible by substance — `strict`. Changing the answer retroactively requires changing the strength (plus see the [defeasible rules page](/constructs/rule-defeasible-unless/)). - `strict` vs `definition … exact`: a named qualification of a concept — a definition (see the [definitions page](/constructs/definition/)); a nameless inference from facts — a rule. Statuses match; the difference is in the proof graph (`was_derived_from`). - `strict` with `then not p(x)` vs `defeater`: closed refusal (Refuted) vs removed support (Not established, not refuted). See the [priority page](/constructs/priority/). - Strict conflict (Contradiction forever) vs resolvable conflict (`defeasible` + `priority`): decide before writing rules, not after the first Contradiction. See the [priority page](/constructs/priority/).