docs← Back to article

Markdown for LLMs

Negation and truth statuses: boundaries

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

Download this articlePlain text ↗
# Negation and truth statuses: 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 absence from silence.** Absence of positive support is
  Not established, not refuted, not Refuted. Negation-as-failure exists in 0.2 in
  no form: neither an unfired rule nor `not_known` gives negative support.
- **Does not refute through `not_known`.** `not_known(P)` is true on absent
  support and infers nothing about `P`: the answer on `P` itself stays
  Not established, not refuted.
- **Does not read a conflict by sides.** An atom in Contradiction activates neither
  `p(x)` nor `not p(x)`; one side is taken only through
  `supported(P)`.
- **Does not apply De Morgan.** `not` is only over an atom; double
  negation is not eliminated, there is no excluded middle.
- **Does not close the world without a holder.** A closure is local (a
  domain of the same arity), dated (`complete_as_of` is a moment), and
  optionally windowed (by `effective`); outside the domain — Not established, not refuted.

## Reserved and closed

- `opposed`, `conflicted`, `no_evidence` are 0.2 hard keywords: the lexer
  rejects them as terms, `LDC-E0201`. The Contradiction
  branch is not read by a separate test in 0.2.
- `not_known` is only in a rule body; in a head — `LDC-E1302` (warning: the
  node is skipped, there is no rule in the compiled output).
- Underscore `_` is only a positive body literal; in a head,
  under `not`, in a status test, and in a case fact — `LDC-E0207`.

## Neighbours and selection rule

- `not p` vs `not_known(P)`: established absence with a source
  vs the “as yet unknown” stage. No source — no `not`.
- `not_known(P)` vs `closure`: reading ignorance without a certificate
  vs a completeness claim with a closure certificate.
- Body `not p` vs `refuted(p)`: the same Refuted reading, but the
  test does not bind variables — a positive conjunct is needed
  nearby.
- Negation vs `unless`/priority: `not` gives negative support and stays silent on
  Contradiction; a refusal’s victory over a fact is by priority between defeasible
  rules, not by negation strength (see the pitfalls, item 8).