Skip to content
docs
Arxo ↗

Classify with an exception

For LLMs6 sections

I want to drop the ordinary qualification when an established exception applies.

The ordinary qualification and its exception are different rules.

Incorrect form
classification eligible(p: Person) defeater { when young(p); }

A classification must support the class. The exception is written as a separate defeater, not as force defeater on classification.

Arxo Law
language "law.core" version "0.2";
package recipes.g.r03 version "0.1.0";
namespace "urn:recipe:g-concepts:03";
entity Person;
relation young(p: Person) kind empirical;
relation exceptional(p: Person);
classification eligible(p: Person) defeasible { when young(p); }
rule Exclude defeater { for p: Person; when exceptional(p); defeat eligible(p); }
Facts on 13.09.2026QuestionAnswer
ordinary casetruth(eligible(entity_ref("urn:recipe:g-concepts:03:p")))truth_status == TRUE_ONLY; / COMPUTED
exceptiontruth(eligible(entity_ref("urn:recipe:g-concepts:03:p")))truth_status == NEITHER; / COMPUTED
no groundtruth(eligible(entity_ref("urn:recipe:g-concepts:03:p")))truth_status == NEITHER; / COMPUTED
defeater removedtruth(eligible(entity_ref("urn:recipe:g-concepts:03:p")))truth_status == TRUE_ONLY; / COMPUTED
ordinary case classifies
Arxo Law
test "ordinary case classifies" {
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 young(entity_ref("urn:recipe:g-concepts:03:p"));
}
evaluate truth(eligible(entity_ref("urn:recipe:g-concepts:03:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}
exception defeats classification
Arxo Law
test "exception defeats classification" {
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 young(entity_ref("urn:recipe:g-concepts:03:p")); assert exceptional(entity_ref("urn:recipe:g-concepts:03:p"));
}
evaluate truth(eligible(entity_ref("urn:recipe:g-concepts:03:p")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}
no ground stays unknown
Arxo Law
test "no ground stays unknown" {
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 exceptional(entity_ref("urn:recipe:g-concepts:03:p"));
}
evaluate truth(eligible(entity_ref("urn:recipe:g-concepts:03:p")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}
removed defeater restores classification
Arxo Law
test "removed defeater restores classification" {
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 young(entity_ref("urn:recipe:g-concepts:03:p")); assert exceptional(entity_ref("urn:recipe:g-concepts:03:p"));
}
evaluate truth(eligible(entity_ref("urn:recipe:g-concepts:03:p")));
expect truth_status == TRUE_ONLY;
expect evaluation_status == COMPUTED;
}

Mutation classification eligible(p: Person) defeasible → classification eligible(p: Person) defeater: LDC-E0201.

A defeater removes support but does not prove not eligible. A strict classification is not cancelled by the same exception.

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

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