Skip to content
docs
Arxo ↗

Achieve by a deadline

For LLMs6 sections

I want to check that a result is reached before the end date.

After the window ends, silence without an established negation is no violation.

Incorrect form
achieve done(p) during [@2026-09-01, infinity);

An infinite window never reaches the overdue stage. A finite deadline and explicit non-performance are different necessary conditions of a violation.

Arxo Law
language "law.core" version "0.2";
package recipes.a.r01 version "0.1.0";
namespace "urn:recipe:a-positions:01";
entity Person;
relation registered(p: Person);
relation done(p: Person);
rule R strict { for p: Person; when registered(p);
then duty File { bearer p; achieve done(p) during [@2026-09-01, @2026-09-10]; };
}
Facts and snapshotQuestionAnswer
before the deadline; 2026-09-05positions()position(File, ACTIVE); / COMPUTED
result presented; 2026-09-05positions()position(File, SATISFIED); / COMPUTED
after the deadline, no data; 2026-09-13positions()position(File, UNDETERMINED); / COMPUTED
non-performance established; 2026-09-13positions()position(File, VIOLATED); / COMPUTED
active before deadline
Arxo Law
test "active before deadline" {
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:01:p"));
}
evaluate positions();
expect position(File, ACTIVE);
expect evaluation_status == COMPUTED;
}
satisfied when performed
Arxo Law
test "satisfied when performed" {
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:01:p")); assert done(entity_ref("urn:recipe:a-positions:01:p"));
}
evaluate positions();
expect position(File, SATISFIED);
expect evaluation_status == COMPUTED;
}
undetermined after deadline without data
Arxo Law
test "undetermined after deadline without data" {
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:01:p"));
}
evaluate positions();
expect position(File, UNDETERMINED);
expect evaluation_status == COMPUTED;
}
violated when non-performance established
Arxo Law
test "violated when non-performance established" {
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:01:p")); assert not done(entity_ref("urn:recipe:a-positions:01:p"));
}
evaluate positions();
expect position(File, VIOLATED);
expect evaluation_status == COMPUTED;
}

The incorrect-form variant is executed as a separate package: the finite end of the window is replaced with infinity; a negation after the former deadline does not violate an open duty.

open window stays active despite recorded failure
Arxo Law
test "open window stays active despite recorded failure" {
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:01:p")); assert not done(entity_ref("urn:recipe:a-positions:01:p"));
}
evaluate positions();
expect position(File, ACTIVE);
expect evaluation_status == COMPUTED;
}
Python
>>> import runpy
>>> check = runpy.run_path("docs/recipes/a-positions/resources/check.py")
>>> check["check_variant"](https://github.com/arxohq/law/blob/master/docs/recipes/a-positions/1)
'А1: контрфактуал подтверждён; lawc = lawref'

Mutation: bearer p; → “; rejection LDC-E1305. Additional counterfactuals are shown as separate scenes.

Absence of done after the deadline is UNDETERMINED. Working days and postponements need their own time computation; here the dates are fixed. The witness of an open window is shown separately below.

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

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