# Name an instant within a day ## Intention I want the status of a duty at the exact instant of the day on which it changes. ## Incorrect form and why it stays silent A date covers the whole day; it cannot be assigned one of two statuses: ```text title="Incorrect form" legal_time @2026-03-10; ``` An undeclared name in place of a window bound is a separate static rejection. ## Correct form ```law language "law.core" version "0.2"; package recipes.e.r08 version "0.1.0"; namespace "urn:recipe:e-time:08"; 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-10T09:00:00+05:00, @2026-03-10T18:00:00+05:00); } }; } ``` ## Frozen execution scene | Facts / cut | Question | Answer | |---|---|---| | legal_time 10.03 without a time | positions | AMBIGUOUS_AS_OF, fatal | | 10.03 08:00 | File | PENDING | | 10.03 10:00 | File | ACTIVE | | 10.03 18:00 | File | UNDETERMINED | ```law test "dateless as-of stays ambiguous" { 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:08:a")); } evaluate positions(); expect issue(AMBIGUOUS_AS_OF); } ``` ```law test "moment before window pends" { given { context { legal_time @2026-03-10T08:00:00+05:00; decision_time @2026-03-10T08:00:00+05:00; knowledge_time @2027-12-31T09:00:00+05:00; timezone "Asia/Almaty"; } assert registered(entity_ref("urn:recipe:e-time:08:a")); } evaluate positions(); expect position(File, PENDING); } ``` ```law test "moment inside window activates" { given { context { legal_time @2026-03-10T10:00:00+05:00; decision_time @2026-03-10T10:00:00+05:00; knowledge_time @2027-12-31T09:00:00+05:00; timezone "Asia/Almaty"; } assert registered(entity_ref("urn:recipe:e-time:08:a")); } evaluate positions(); expect position(File, ACTIVE); } ``` ```law test "excluded end releases duty" { given { context { legal_time @2026-03-10T18:00:00+05:00; decision_time @2026-03-10T18:00:00+05:00; knowledge_time @2027-12-31T09:00:00+05:00; timezone "Asia/Almaty"; } assert registered(entity_ref("urn:recipe:e-time:08:a")); } evaluate positions(); expect position(File, UNDETERMINED); } ``` ## Counterfactual The Date scene pins AMBIGUOUS_AS_OF. teaches substitutes an undeclared boundary for the window start and requires E2115: that rejection does not replace the demand for an exact cut. ## Boundary The CivilDay policy defines civil days by a fixed offset, but it does not pick an arbitrary instant inside them. A wrong entry-into-force window is a different question from AMBIGUOUS_AS_OF; this recipe is about the demand for an exact cut. ## Pitfall A position changes status inside one day. On a 09:00–18:00 window the closed bound is excluded, and at 18:00 the term has already expired. The as-of moment is the decision time (for a dateless law date, the calendar date of the decision); every scene names its decision moment explicitly.