docs← Back to article

Markdown for LLMs

Defeasible rules: boundaries

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

Download this articlePlain text ↗
# Defeasible 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 infer the complement.** A defeater and a bare `unless` remove
  support; after defeat the answer is Not established, not refuted, not Refuted.
  Negation must be asserted in the contrary form or by a `not`-head rule.
- **Does not defeat the strict.** Nobody defeats strict support:
  neither defeater (`LDC-E4112`) nor priority (`LDC-E4105`). Two
  strict rules with opposite heads give a preserved Contradiction.
- **Does not count speciality or seniority.** Number of conditions and date
  of adoption decide nothing: the ground is given by an explicit
  relation with a `reason`. Neither the “latest” nor the “first” rule wins
  on its own.
- **Does not see the power effect.** The effect of a `power` is invisible to
  a same-round defeater: an `unless` condition reading an effect-reachable
  predicate silently does not fire. Write the defeater on the raw case fact.
- **Does not split the contrary proviso on a norm head.**
  `unless C then not duty …` is undefined and rejected at lowering:
  a position has no complement. A bare proviso on a norm head is lawful and
  gives a defeated position.

## Reserved and closed

- Priority is a strict partial order: irreflexive, transitive,
  acyclic. A static cycle is a rejection `LDC-E4104`, including
  `prefer A over A`; a ring of conditional priorities surfaces at runtime
  as `PRIORITY_CONFLICT` with answer Contradiction.
- `priority` is exactly one `prefer A over B` edge per declaration; without
  `prefer` or on repeat — `LDC-E0201`. A side naming no rule —
  `LDC-E4108`/`LDC-E1318`: such priority never applies.
- `defeat` — one per defeater block (`LDC-E1329` on repeat); `defeat
  not p(x)` is rejected by the parser (`LDC-E0201`).
- Repeated `scope`/`effective`/`defeat` in one block — `LDC-E1329`.

## Neighbours and selection rule

- `unless` vs `priority`: a proviso removes support inside the norm;
  priority resolves a collision of two opposite inferences. See the
  selection table on the [defeasible-rules page](/constructs/rule-defeasible-unless/).
- `unless` vs a separate `defeater`: same article and same variables —
  a clause; another act, reuse, own priority — a separate rule.
- Bare vs contrary `unless`: Not established, not refuted silence vs established
  Refuted refusal.
- `strict` vs `defeasible`: no exceptions now or ever vs at least one
  conceivable one.