docs← Back to article

Markdown for LLMs

Derive an explicit negative by a norm

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

Download this articlePlain text ↗
# Derive an explicit negative by a norm

## Intention

I want to derive the absence of a debt from an established discharge.

## Incorrect form and why it stays silent

A consumer rule does not itself create its negative premise:

```law title="Incorrect form"
rule Borrow strict { for p: Person; when registered(p) and not debt(p); then may_borrow(p); }
// Negative отсутствует.
```

## Correct form

```law
language "law.core" version "0.2";
package recipes.v.r09 version "0.1.0";
namespace "urn:recipe:v-negation:09";

entity Person;
relation registered(p: Person);
relation cleared(p: Person);
relation debt(p: Person);
relation may_borrow(p: Person);
rule Negative strict {
    for p: Person;
    when cleared(p);
    then not debt(p);
}
rule Borrow strict {
    for p: Person;
    when registered(p) and not debt(p);
    then may_borrow(p);
}
```

## Frozen execution scene

| Facts | Question | Answer |
|---|---|---|
| registered, cleared | debt(a) | FALSE_ONLY |
| registered, cleared | may_borrow(a) | TRUE_ONLY |
| registered, cleared, without Negative | may_borrow(a) | NEITHER |
| registered, cleared, debt | debt(a) | BOTH |
| same both supports | may_borrow(a) | NEITHER |

## Counterfactual

evaluates.without removes Negative entirely. Discharge remains a fact, but the bridge to negative support disappears, and Borrow no longer fires.

## Boundary

A strict negative head does not cancel a positive fact. Priority of refusal needs defeatable candidates and an explicitly given advantage; consuming a dispute is [Use a disputed fact deliberately](/recipes/v-negation/consume-conflict/).

## Pitfall

A negative body without a producer stays silent. This page takes the negative from a discharge norm instead, so no complete-registry holder is assumed.