Different amounts are not opposites
For LLMs7 sections
Intention
Section titled “Intention”I want to replace a default amount by lifting its ground.
Two different amounts can be kept at once.
Incorrect form and why it stays silent
Section titled “Incorrect form and why it stays silent”priority Dead { prefer Special over General; reason lex_specialis; }// Общая сумма остаётся, если её основание не снято.100 and 200 KZT are different positive atoms. Priority does not pick a value; warning E2142 names a dead edge.
Correct form
Section titled “Correct form”language "law.core" version "0.2";package recipes.b.r11 version "0.1.0";namespace "urn:recipe:b-rules:11";
entity Person;relation eligible(p: Person);relation special(p: Person);relation allowed(p: Person);relation charge(p: Person, amount: Money);rule General defeasible { for p: Person; when eligible(p); then charge(p, 100 KZT); unless special(p); }rule Special defeasible { for p: Person; when eligible(p) and special(p); then charge(p, 200 KZT); }// priority-markerFrozen execution scene
Section titled “Frozen execution scene”| Facts and choice | Question | Answer |
|---|---|---|
| default | truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)) | TRUE_ONLY / COMPUTED |
| special amount | truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 200 KZT)) | TRUE_ONLY / COMPUTED |
| default lifted | truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)) | NEITHER / COMPUTED |
| default lift removed | truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)) | TRUE_ONLY / COMPUTED |
| special amount kept together with the general | truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 200 KZT)) | TRUE_ONLY / COMPUTED |
default charge
test "default charge" { 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 eligible(entity_ref("urn:recipe:b-rules:11:p")); } evaluate truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}special amount
test "special amount" { 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 eligible(entity_ref("urn:recipe:b-rules:11:p")); assert special(entity_ref("urn:recipe:b-rules:11:p")); } evaluate truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 200 KZT)); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}default lifted
test "default lifted" { 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 eligible(entity_ref("urn:recipe:b-rules:11:p")); assert special(entity_ref("urn:recipe:b-rules:11:p")); } evaluate truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)); expect truth_status == NEITHER; expect evaluation_status == COMPUTED;}default lifting removed
test "default lifting removed" { 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 eligible(entity_ref("urn:recipe:b-rules:11:p")); assert special(entity_ref("urn:recipe:b-rules:11:p")); } evaluate truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 100 KZT)); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}special amount kept with general
test "special amount kept with general" { 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 eligible(entity_ref("urn:recipe:b-rules:11:p")); assert special(entity_ref("urn:recipe:b-rules:11:p")); } evaluate truth(charge(entity_ref("urn:recipe:b-rules:11:p"), 200 KZT)); expect truth_status == TRUE_ONLY; expect evaluation_status == COMPUTED;}Counterfactual
Section titled “Counterfactual”Mutation: // priority-marker → priority Dead { prefer Special over General; reason lex_specialis; }; warning LDC-E2142. Scenes that delete a fragment are marked explicitly in the table.
Boundary
Section titled “Boundary”The unit of choice is the indicator value; complementary guards, a decision, or a default defeater will do. A key does not turn priority into last-value assignment.
Pitfall
Section titled “Pitfall”Two different amounts are kept at once: priority does not pick a value.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.