Skip to content
docs
Arxo ↗

Liberty of one's own action

For LLMs6 sections

I want to permit an action of the liberty holder themselves.

Incorrect form
then liberty Apply { holder p; window [@2026-09-01, @2026-09-10]; };

Without action it is not named what is permitted. If the content of the right is another person’s action, a duty with a beneficiary is needed, not liberty.

Arxo Law
language "law.core" version "0.2";
package recipes.a.r05 version "0.1.0";
namespace "urn:recipe:a-positions:05";
entity Person;
relation registered(p: Person);
relation done(p: Person);
relation apply(p: Person);
rule R strict { for p: Person; when registered(p);
then liberty Apply { holder p; action apply(p); window [@2026-09-01, @2026-09-10]; };
}
Facts and snapshotQuestionAnswer
liberty active; 2026-09-05positions()position(Apply, ACTIVE); / COMPUTED
the action did not follow from the permission; 2026-09-05truth(apply(entity_ref("urn:recipe:a-positions:05:p")))truth_status == NEITHER; / COMPUTED
the window ended; 2026-09-13positions()position(Apply, EXPIRED); / COMPUTED
liberty active inside window
Arxo Law
test "liberty active inside window" {
given {
context {
legal_time @2026-09-05;
decision_time @2026-09-05T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:a-positions:05:p"));
}
evaluate positions();
expect position(Apply, ACTIVE);
expect evaluation_status == COMPUTED;
}
permission grants no action fact
Arxo Law
test "permission grants no action fact" {
given {
context {
legal_time @2026-09-05;
decision_time @2026-09-05T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:a-positions:05:p"));
}
evaluate truth(apply(entity_ref("urn:recipe:a-positions:05:p")));
expect truth_status == NEITHER;
expect evaluation_status == COMPUTED;
}
liberty expires after window
Arxo Law
test "liberty expires after window" {
given {
context {
legal_time @2026-09-13;
decision_time @2026-09-13T09:00:00+05:00;
knowledge_time @2026-09-30T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:a-positions:05:p"));
}
evaluate positions();
expect position(Apply, EXPIRED);
expect evaluation_status == COMPUTED;
}

Mutation: action apply(p); → “; rejection LDC-E1305. Additional counterfactuals are shown as separate scenes.

An explicit liberty is a strong permission. Absence of a prohibition is a separate query — see Not prohibited as a query; this position does not derive the fact apply and does not create someone else’s duty.

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

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