Skip to content
docs
Arxo ↗

Keep interval bounds open

For LLMs7 sections

I want to include the start date in full and exclude the end date in full.

A zone in context does not replace a Date→Instant policy:

Incorrect form
// CivilDay удалена; окно Date сравнивается с legal_time Instant.

An undeclared name boundary instead of a date is a separate compiler rejection.

Arxo Law
language "law.core" version "0.2";
package recipes.e.r12 version "0.1.0";
namespace "urn:recipe:e-time:12";
entity Person;
relation registered(p: Person);
temporal_resolution_policy CivilDay {
utc_offset "+05:00";
day_boundary "00:00:00";
timezone "Asia/Almaty";
}
relation submitted(p: Person);
rule Report strict {
for p: Person;
when registered(p);
then duty File {
bearer p;
goal achievement {
condition submitted(p);
window [@2026-03-10, @2026-03-11);
}
};
}
rule ClosedRule strict {
for p: Person;
when registered(p);
then duty Closed {
bearer p;
goal achievement {
condition submitted(p);
window [@2026-03-10, @2026-03-11];
}
};
}
rule OpenLeftRule strict {
for p: Person;
when registered(p);
then duty OpenLeft {
bearer p;
goal achievement {
condition submitted(p);
window (@2026-03-10, @2026-03-12];
}
};
}
rule OpenBothRule strict {
for p: Person;
when registered(p);
then duty OpenBoth {
bearer p;
goal achievement {
condition submitted(p);
window (@2026-03-10, @2026-03-12);
}
};
}
Facts / cutQuestionAnswer
10.03 00:00FileACTIVE
10.03 23:59FileACTIVE
11.03 00:00FileUNDETERMINED
legal_time Date 11.03, closed endClosedACTIVE
legal_time Date 10.03, open startOpenLeft, OpenBothPENDING
without CivilDay, cut at an instantpositionsACTIVE, COMPUTED without issue — divergence from the required fatal rejection
included start activates
Arxo Law
test "included start activates" {
given {
context {
legal_time @2026-03-10T00:00:00+05:00;
decision_time @2026-03-10T00:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(File, ACTIVE);
}
last minute stays active
Arxo Law
test "last minute stays active" {
given {
context {
legal_time @2026-03-10T23:59:00+05:00;
decision_time @2026-03-10T23:59:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(File, ACTIVE);
}
excluded end releases duty
Arxo Law
test "excluded end releases duty" {
given {
context {
legal_time @2026-03-11T00:00:00+05:00;
decision_time @2026-03-11T00:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(File, UNDETERMINED);
}
unresolved granularity still answers
Arxo Law
test "unresolved granularity still answers" {
given {
context {
legal_time @2026-03-10T12:00:00+05:00;
decision_time @2026-03-10T12:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(File, ACTIVE);
expect not issue(TEMPORAL_RESOLUTION_POLICY_MISSING);
}
closed date includes full day
Arxo Law
test "closed date includes full day" {
given {
context {
legal_time @2026-03-11;
decision_time @2026-03-11T12:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(Closed, ACTIVE);
}
open start excludes first day
Arxo Law
test "open start excludes first day" {
given {
context {
legal_time @2026-03-10;
decision_time @2026-03-10T12:00:00+05:00;
knowledge_time @2027-12-31T09:00:00+05:00;
timezone "Asia/Almaty";
}
assert registered(entity_ref("urn:recipe:e-time:12:a"));
}
evaluate positions();
expect position(OpenLeft, PENDING);
expect position(OpenBoth, PENDING);
}

runs.without removes CivilDay. A fatal missing-policy refusal is required, but both implementations answer ACTIVE with empty issues — remeasured with the decision date named explicitly. The scene records the observation and does not treat it as the norm. This is a defect of both implementations, still live. teaches separately substitutes an unresolved name for a date and requires E2115.

For [D1,D2] day D2 is included in full; for [D1,D2) it is not included by any instant. infinity is allowed for an ordered extension, as with immunity in Limit a legal change with immunity. A mixed window comparison without a policy cannot be treated as correct because of a green answer: the current check gap is documented in the counterfactual. The corrected form always presents CivilDay.

A closed date includes the civil day, an open one excludes it; mixed comparison without a policy is inadmissible. The probe checks exactly midnight of the excluded day.

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

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