Markdown for LLMs
Liberty of one's own action
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Liberty of one's own action
## Intention
I want to permit an action of the liberty holder themselves.
## Incorrect form and why it stays silent
```text title="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.
## Correct form
```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]; };
}
```
## Frozen execution scene
| Facts and snapshot | Question | Answer |
|---|---|---|
| liberty active; 2026-09-05 | `positions()` | `position(Apply, ACTIVE);` / `COMPUTED` |
| the action did not follow from the permission; 2026-09-05 | `truth(apply(entity_ref("urn:recipe:a-positions:05:p")))` | `truth_status == NEITHER;` / `COMPUTED` |
| the window ended; 2026-09-13 | `positions()` | `position(Apply, EXPIRED);` / `COMPUTED` |
```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;
}
```
```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;
}
```
```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;
}
```
## Counterfactual
Mutation: `action apply(p);` → ``; rejection LDC-E1305. Additional counterfactuals are shown as separate scenes.
## Boundary
An explicit liberty is a strong permission. Absence of a prohibition is a separate query — see [Not prohibited as a query](/recipes/a-positions/weak-permission/); this position does not derive the fact apply and does not create someone else's duty.