docs← Back to article

Markdown for LLMs

Strict rules: boundaries

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

Download this articlePlain text ↗
# 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/).