From e25558fee984837389d0e53cd6e17a3820f8e5ea Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Tue, 18 Aug 2026 10:21:39 +0200 Subject: fix(ef): days within the Octave of the Nativity, and RG 69 for 29-31 Dec M11 was the one entry in the missalemeum allow-list adjudicated against colitur, and it was right to be. The calendarium directs "Com. octavae Nativitatis" under each of 26, 27 and 28 December (LT.txt:5454-5459) and RG 109(c) makes a commemoration of the days within the Octave privileged. colitur emitted none. The cause was a reasoning error stated in Temporal_ef's own comment: "26-28 Dec are Stephen, John and the Innocents, hence sanctoral". Their office is sanctoral -- those II-class feasts win the day -- but they remain days WITHIN the Octave (RG 67, "Dies infra octavam sunt II classis"), and colitur built them as generic Class4 ferias. With no octave-day candidate there was nothing for the feast to be commemorated over. Building days 2-4 exactly as days 5-7 always were makes the commemoration fall out of the existing machinery rather than needing a special case: the feast wins on rank, the octave day loses, RG 109(c) privileges it, RG 111(c)'s single slot goes to it. A second, independent defect surfaced while fixing it. The octave-day branch covered 29-31 December unconditionally, so a Sunday falling there got a feria identity -- where RG 69 says a Sunday occurring 26-31 December SEMPER keeps its own office and commemorates the feast. Confirmed against the oracle rather than argued: missalemeum shows "Sunday in the Octave of Christmas" on 2035-12-30, a Sunday, where colitur showed a feria. Both named and anchors now exclude Sundays; anchors had asserted the octave slugs unconditionally and was wrong the same way. Blast radius, full sweep against the pre-change binary: 25251 days, every one 26-31 December, exactly two shapes, zero unclassified -- 21653 carrying an octave-day slug and 3598 that are all Sundays, the RG 69 correction. Allow-lists: M11 closed and removed. C6 narrowed 138 to 119, nineteen of its days having changed temporal identity rather than verdict. M15 widened 18 to 22 -- both streams now commemorate the octave, but the candidate is temporal-origin and carries no English name to match against missalemeum's own, this entry's documented limit on four more dates. Stated rather than glossed: this trades a substantive divergence, colitur omitting a commemoration the Missal directs, for a comparator limit, the commemoration existing but not being name-matchable. That is a real improvement, but what the oracle now proves is that both streams commemorate something on those days; the identity rests on the rubric and the calendarium. Register: section 6.17. --- test/test_temporal_ef.ml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'test/test_temporal_ef.ml') diff --git a/test/test_temporal_ef.ml b/test/test_temporal_ef.ml index 4e97d33..4995ee1 100644 --- a/test/test_temporal_ef.ml +++ b/test/test_temporal_ef.ml @@ -526,8 +526,18 @@ let test_christmastide_feria_slugs () = itself uses 3 January and 10 January below instead -- both, checked directly against data/ef/sanctoral.sexp, have no competing entry in any year, so the BVM Saturday office genuinely IS reachable there. *) - Alcotest.(check string) "26 Dec (Sat)" "ef-christmas-0-saturday" (slug_of (d 2026 12 26)); - Alcotest.(check string) "28 Dec (Mon)" "ef-christmas-0-monday" (slug_of (d 2026 12 28)); + (* CORRECTED 2026-08-18: these pinned "ef-christmas-0-", the generic + Christmastide ferial slugs 26-28 December used to fall through to. Those + are days WITHIN the Octave of the Nativity (RG 67, "Dies infra octavam + sunt II classis") and now carry the octave-day slug exactly as 29-31 + always did -- which is what gave M11's missing "Com. octavae Nativitatis" + a candidate to be commemorated over. The days are still Saturday and + Monday; only the temporal identity changed, and only because it was + wrong. *) + Alcotest.(check string) "26 Dec (Sat): day 2 within the Octave" "ef-nativity-octave-day-2" + (slug_of (d 2026 12 26)); + Alcotest.(check string) "28 Dec (Mon): day 4 within the Octave" "ef-nativity-octave-day-4" + (slug_of (d 2026 12 28)); (* 3 Jan 2026 is a SATURDAY, genuinely reachable (data/ef/sanctoral.sexp has no 3 January entry) -- the real demonstration for the "-1-" stretch that 26 December's own Saturday could not honestly provide. *) -- cgit v1.3