Skip to content
docs
Arxo ↗

Close a list before a residual norm

For LLMs7 sections

I want to allow actions outside an exhaustive list of prohibitions.

A list of positive records alone does not promise completeness:

Incorrect form
rule Residual strict { for a: Act; when activity(a) and not prohibited(a); then allowed(a); }
// Политики ClosedList нет.
Arxo Law
language "law.core" version "0.2";
package recipes.v.r04 version "0.1.0";
namespace "urn:recipe:v-negation:04";
entity Act;
relation activity(a: Act);
relation prohibited(a: Act);
relation allowed(a: Act);
closure ClosedList {
predicate prohibited;
domain activity;
snapshot REGISTRY_2026;
complete_as_of @2026-09-13T00:00:00+05:00;
derive_explicit_negative true;
effective [@2026-01-01, @2027-01-01);
}
rule Residual strict {
for a: Act;
when activity(a) and not prohibited(a);
then allowed(a);
}
FactsQuestionAnswer
activity(a), no recordallowed(a)TRUE_ONLY
activity(a), prohibited(a)allowed(a)NEITHER
outside domainallowed(a)NEITHER
activity(a), without ClosedListallowed(a)NEITHER
residual rule allows remainder
Arxo Law
test "residual rule allows remainder" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-13T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert activity(entity_ref("urn:recipe:v-negation:04:a"));
}
evaluate truth(allowed(entity_ref("urn:recipe:v-negation:04:a")));
expect truth_status == TRUE_ONLY;
}
named ban blocks allowance
Arxo Law
test "named ban blocks allowance" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-13T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert activity(entity_ref("urn:recipe:v-negation:04:a"));
assert prohibited(entity_ref("urn:recipe:v-negation:04:a"));
}
evaluate truth(allowed(entity_ref("urn:recipe:v-negation:04:a")));
expect truth_status == NEITHER;
}
no activity yields neither
Arxo Law
test "no activity yields neither" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-13T09:00:00+05:00;
timezone "Asia/Almaty";
}
}
evaluate truth(allowed(entity_ref("urn:recipe:v-negation:04:a")));
expect truth_status == NEITHER;
}
bare list without closure proves nothing
Arxo Law
test "bare list without closure proves nothing" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-13T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert activity(entity_ref("urn:recipe:v-negation:04:a"));
}
evaluate truth(allowed(entity_ref("urn:recipe:v-negation:04:a")));
expect truth_status == NEITHER;
}

evaluates.without removes ClosedList; runs repeats this counterfactual with a dated case. The norm stays the same; the source of negative support disappears.

Here allowed is a checkable qualification of a residual norm. allowed here is not the weakly_permitted answer: that is a separate query with a chosen universe of rules, snapshot, reading, and closure policy. The strong liberty position is described separately. A complete normative list cannot be replaced by the absence of case facts.

A list without closure leaves a negative premise NEITHER. The completeness holder, domain, and snapshot fix exactly that cause.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.