Skip to content
docs
Arxo ↗

Submit a negative fact

For LLMs7 sections

I want to tell the case that a person is not insured.

Polarity is written before the atom. A field in the assertion body does not replace not:

Incorrect form
assert insured(person) { polarity negative; }

A second error is to negate the whole conjunction: not (registered(p) and insured(p)) is rejected.

Arxo Law
language "law.core" version "0.2";
package recipes.v.r02 version "0.1.0";
namespace "urn:recipe:v-negation:02";
entity Person;
relation registered(p: Person);
relation insured(p: Person);
relation notice(p: Person);
rule Notice strict {
for p: Person;
when registered(p) and not insured(p);
then notice(p);
}
FactsQuestionAnswer
registered(a), assert not insured(a)notice(a)TRUE_ONLY
registered(a), insured(a) { polarity negative; }notice(a)NEITHER
registered(a), no insurednotice(a)NEITHER
explicit negative fact triggers notice
Arxo Law
test "explicit negative fact triggers notice" {
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 registered(entity_ref("urn:recipe:v-negation:02:a"));
assert not insured(entity_ref("urn:recipe:v-negation:02:a"));
}
evaluate truth(notice(entity_ref("urn:recipe:v-negation:02:a")));
expect truth_status == TRUE_ONLY;
expect applied(Notice);
}
polarity field is no negation
Arxo Law
test "polarity field is no negation" {
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 registered(entity_ref("urn:recipe:v-negation:02:a"));
assert insured(entity_ref("urn:recipe:v-negation:02:a")) { polarity negative; }
}
evaluate truth(notice(entity_ref("urn:recipe:v-negation:02:a")));
expect truth_status == NEITHER;
expect not applied(Notice);
}

The two scene files differ in how the negative fact is written; the second keeps the wrong answer. teaches separately pins the ban on not over a conjunction (E1305).

A negative fact must have its own ground; negating a compound formula is rejected.

polarity negative does not give negative support; the fix is assert not.

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

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