docs← Back to article

Markdown for LLMs

Liberty-immunity pitfalls

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

Download this articlePlain text ↗
# Liberty-immunity pitfalls

Wrong forms, silent outcomes, `LDC-E` diagnostics, typical formalizer
mistakes, and how to detect them.

## 1. Absence of a prohibition is not permission

By default absence of a prohibition returns `UNDETERMINED`, not permission.
A weak query is true only relative to an explicitly chosen universe of
rules, source/time snapshot, interpretation, and closure policy over
applicable prohibitions. An AI agent answering "permitted" to a normless question
invents a position: the honest answer is `UNDETERMINED` listing the query's chosen
parameters.

## 2. Cross-wired parties

Liberties and immunities have `holder`/`against`; duties and prohibitions have
`bearer`/`beneficiary`; powers have `holder`/`over`.
`bearer` on a liberty is not "a synonym of holder" but a marker of a foreign
modality: the reader looks for a duty where the norm grants a right. The
`claim_right` view permutes the parties on purpose — which is exactly why it is
a view, not a record.

## 3. A liberty has no goal

Performance, breach, deadline are duty categories. A liberty has
only a window: `CREATED` before, `ACTIVE` inside, `EXPIRED` after. A test
expecting `position(MayX, SATISFIED)` or `VIOLATED` fails because of a carried-over category, not
because of the engine. Performing the action (`withdraws`) neither "performs" the liberty
nor discharges it.

## 4. Immunity locks the effect, not the action

Immunity blocks the legal transformation but does not necessarily prohibit
the organ's physical action: an invalid exercise may still
factually happen and carry separate consequences. Modelling
"arrest is prohibited" as immunity loses the tort of the arrest itself: a prohibition on the
organ is `prohibition`, un-lockability of the effect is `immunity`. Both forms side by
side is normal; one for the other is a mistake.

## 5. Liberty against a prohibition with no priority

The pair is considered only for one ground subject with overlapping windows;
structurally only forbearance and liberty over the same
action conflict. Priority gives the loser `DEFEATED`, its absence —
`UNRESOLVED_NORMATIVE_CONFLICT`, and both positions stand.
Silent outcome: the case answers with conflict where the author expected permission to
win. Detection — read `evaluation_status`, not only the positions.

## 6. A judge in `valid_when` is a request, not a refusal

A judgment relation in `valid_when` or `condition` gives `NEITHER` with
`REQUIRES_JUDGMENT` and a `JudgmentRequest` to the named organ:
no `POWER_INVALID_EXERCISE` is issued then — the organ has not spoken yet.
The mistake is reading this `NEITHER` as "the power is invalid". If the effect
is already locked by immunity, the judge is not asked at all.

## 7. Incomplete liberty and immunity — `LDC-E1305`

A `liberty` without a holder, an `action`, or a `window`, an `immunity`
without a holder, a `protected_effect`, or a `window` is rejection `LDC-E1305`
for each missing field. Detection: `law engine check` lists
every missing field — read the whole list, not the first item.