aboutsummaryrefslogtreecommitdiff
path: root/data/of/expected-divergences-litcal.sexp
blob: e0b8b2ad76bb8878800815d2ddb75d7c62a5dfc1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
; data/of/expected-divergences-litcal.sexp -- of-litcal-layer task
; (2026-08-25)'s cited allow-list for the litcal external-validation layer
; (test/test_litcal_of.ml), fixture window 2023-12-03..2035-12-01 (twelve
; litcal liturgical years, 4382 civil days).
;
; ONE active entry. The Ordinary Time WEEK comparison (the actual risk this
; layer exists to validate, Normae n. 44's two-block resumption arithmetic)
; carries NO allow-list at all -- see test_litcal_of.ml's own
; [test_ordinary_time_week_matches] comment for why a witnessed week is
; zero-tolerance, not an "expected divergence" shape.

; L1 -- OPEN BY DESIGN, adjudicated "colitur" (a deliberate, cited design
; decision, not a defect on either side). Fires on every litcal row tagged
; EASTER_TRIDUUM: Holy Thursday's own evening Mass of the Lord's Supper,
; Good Friday, and Holy Saturday, across all twelve fixture years -- 3
; dates x 12 years = 36 rows, exactly.
;
; litcal's own data model gives the Sacred Triduum a season value of its
; own (`liturgical_season: EASTER_TRIDUUM`), distinct from both LENT and
; EASTER. colitur's `Vocab_of.season` has no such value: it keeps the
; whole civil day of Holy Thursday, Good Friday and Holy Saturday inside
; `Lent`, per lib/rites/rite_of/temporal_of.ml's own top-of-module
; citation --
;
;   Normae n. 28 (PRIMARY): "Tempus Quadragesimae decurrit a feria IV
;   Cinerum ad Missam in Cena Domini EXCLUSIVE" -- Lent runs from Ash
;   Wednesday up to (excluding) the evening Mass of the Lord's Supper. At
;   colitur's own civil-day granularity (one season per date, never a
;   sub-day boundary), the excluded boundary is an EVENT within Holy
;   Thursday's own civil day, not an earlier day -- so the whole day stays
;   Lent.
;
;   Normae n. 30 (PRIMARY, independent second anchor): "Dominicae huius
;   temporis appellantur dominicae I, II, III, IV, V in Quadragesima.
;   Dominica sexta, in qua initium sumit Hebdomada sancta, dicitur...
;   'Dominica in palmis de Passione Domini'" -- Holy Week (Palm Sunday
;   through the Vigil) is Lent's OWN sixth week by the Missal's own prose,
;   not a season outside Lent's numbering.
;
;   Normae Titulus II's own six subsection headings (II-VI): FIVE are
;   literally called a "tempus"; "Triduum paschale" is deliberately NOT --
;   a real textual signal that the document's own authors did not count
;   the Triduum among the season vocabulary a day's season field needs to
;   name, corroborated by the Missal's own Mass-propers structure printing
;   "HEBDOMADA SANCTA" and "SACRUM TRIDUUM PASCHALE" as two separate
;   headings, neither titled "tempus" either.
;
; So litcal's EASTER_TRIDUUM is a genuine, defensible IMPLEMENTATION
; choice (giving the Triduum its own practical season tag, useful for an
; API consumer), and colitur's `Lent` is an equally genuine, primary-
; source-argued READING of the same Normae text that declines to invent a
; sixth season value the text itself does not name. Neither side is wrong;
; this is a vocabulary question the two engines answer differently by
; design, not a computation either got wrong -- verdict "colitur" here
; means "colitur's own choice is deliberate and cited", not "litcal is in
; error".
;
; The ROW SELECTION that produces exactly 36, not 24 or 48, is explained
; in test/fixtures/litcal-temporal-2024-2035.sexp's own header and
; tools/extract_litcal_ordo.py's own top-of-file comment: Holy Thursday
; carries TWO non-vigil litcal rows on the same civil date (the Chrism
; Mass, LENT, and the evening Mass of the Lord's Supper, EASTER_TRIDUUM);
; the Chrism row is excluded upstream (in the fixture generator, not
; here) so the evening Mass -- the day's own actual public/parish liturgy
; -- represents the date, giving Holy Thursday the SAME season shape as
; Good Friday and Holy Saturday (each of which has only one non-vigil row,
; always EASTER_TRIDUUM) rather than an inconsistent 2-of-3 split.
((id L1)
 (citation "Normae nn. 28, 30; Normae Titulus II's own six subsection headings")
 (verdict colitur)
 (note "Holy Thursday (evening Mass)/Good Friday/Holy Saturday: litcal tags EASTER_TRIDUUM, colitur has no Triduum season value and keeps the whole day Lent -- a cited design decision, not a defect.")
 (expected_rows 36))

; L2, L3 -- CLOSED, REMOVED (W2 fix, CLAUDE.md, temporal_of.ml). These two
; entries used to record a defect from task 6 (2026-08-26): the litcal layer
; extended beyond season/week to GRADE and IDENTITY, and both fired on the
; SAME date, the SAME then-known, then-PINNED-NOT-FIXED gap test_rite_of.ml
; used to record: Normae n. 35(a)'s "Dominica infra octavam Nativitatis, vel,
; ea deficiente, die 30 decembris" fallback was never reached by
; {!Rite_of.Temporal_of.temporal} in a year 25 December is itself a Sunday
; (its Holy-Family test lived inside the Sunday-only dispatch arm of
; [sunday_slug], so the 30-December fallback [holy_family] itself computed
; correctly was never actually consulted there). 2033 was this fixture's own
; live witness. {!Rite_of.Temporal_of.temporal} now consults
; {!Rite_of.Temporal_of.holy_family} directly, independent of weekday, so
; litcal and colitur agree on 30 December 2033 on both axes -- test_litcal_of
; .ml's own [test_no_holy_family_2033_divergence] asserts this directly.
; `expected_rows` for both would now be 0 (no divergent rows remain), so the
; entries are removed rather than kept as zero-value ghosts, the same
; "CLOSED, REMOVED" discipline data/ef/expected-divergences-missalemeum.sexp
; already follows for a closed entry.

; L4 -- litcal's own [grade_lcl] text "celebration with precedence over
; solemnities" (this fixture's own display word for Tabula I.1/I.2) is ALSO
; used for Trinity Sunday and Corpus Christi, every one of the fixture's 12
; years (24 rows). precedence_of.ml's own Tabula I.2 transcription --
; "Nativitas Domini, Epiphania, Ascensio et Pentecostes; dominicae Adventus,
; Quadragesimae et Paschae; feria IV Cinerum; hebdomada sancta a feria II ad
; V" -- names neither: both are "Sollemnitates Domini", Tabula I.3 (band
; 30), the SAME entry {!Rite_of.Precedence_of.band} gives ChristKing, a
; structurally identical "Solemnity of the Lord anchored to a Sunday within
; Ordinary Time" -- and litcal ITSELF labels ChristKing "SOLEMNITY", not
; this text, offered as corroborating (not conclusive -- this task did not
; inspect litcal's own source) evidence that litcal's own grade vocabulary
; is coarser/inconsistent here, not a considered different Tabula reading.
((id L4)
 (citation "Normae/Tabula I.2's own enumeration (precedence_of.ml); litcal's own inconsistent treatment of ChristKing vs Trinity/CorpusChristi")
 (verdict colitur)
 (note "Trinity Sunday and Corpus Christi, all 12 fixture years: litcal's grade text implies Tabula I.1/I.2 (band 10/20); colitur (Tabula I.3, band 30) matches the primary text's own I.2 enumeration, which names neither.")
 (expected_rows 24))

; L5 -- litcal's own data is STALE. St Mary Magdalene (22 July) reads grade
; "Memorial" on every one of the 10 years this fixture witnesses her (2 of
; the 12 years: an ordinary per-annum Sunday there instead, on both sides,
; not a witness). The Congregation for Divine Worship's decree "Sanctae
; Mariae Magdalenae" (3 June 2016, Prot. n. 708/2015, AAS 108 (2016)
; 798-799) raised her to FEAST -- colitur's data/of/amendments/
; 005-mary-magdalene-rank.sexp applies it (band 70); litcal's grade text
; shows no sign of having done so.
((id L5)
 (citation "CDW decree \"Sanctae Mariae Magdalenae\", 3 June 2016, Prot. n. 708/2015, AAS 108 (2016) 798-799; data/of/amendments/005-mary-magdalene-rank.sexp")
 (verdict litcal)
 (note "St Mary Magdalene, 22 July, 10 witnessed years: litcal's grade text (\"Memorial\") does not reflect the 2016 CDW decree raising her to Feast; colitur's shipped amendment does.")
 (expected_rows 10))

; L6, L7 -- a genuine, UNADJUDICATED tie-break, found live, not anticipated.
; Easter 2033 is 17 April, putting the movable Solemnity of the Sacred
; Heart (Easter+68) on 24 June, the SAME fixed date as the Nativity of St
; John the Baptist -- an exact Tabula I.3/band-30 tie.
; Colitur_kernel.Precedence.resolve's own tie-break (precedence.ml's
; [compare_by], Slug.compare when bands are equal) hands the day to
; "birth-of-saint-john-the-baptist" alphabetically, and
; Rite_of.Precedence_of.disposition Transfers the loser (Sacred Heart) to
; 25 June. litcal's own answer is the OPPOSITE: Sacred Heart keeps 24 June,
; and John the Baptist is shown a day EARLY, on 23 June. NEITHER answer is
; dictated by any citation this task found -- the Tabula ranks both
; candidates at the identical entry, and nothing in the Normae or IGMR
; extracts a Lord-outranks-Saint rule WITHIN one Tabula entry the way, e.g.,
; RG 112(a) does on the EF side for a narrower case. NOT fixed here (a
; kernel-level tie-break policy is out of this task's own scope regardless
; of verdict).
((id L6)
 (citation "precedence.ml's compare_by (Slug.compare tie-break); no Tabula/Normae text found ranking Sacred Heart above/below the Nativity of John the Baptist at equal band")
 (verdict open)
 (note "2033-06-23 (NativityJohnBaptist, grade) and 2033-06-25 (ImmaculateHeart, grade, downstream of the same collision): the Sacred-Heart/John-Baptist tie on 24 June 2033, GRADE axis. See L7 for the identity axis.")
 (expected_rows 2))
((id L7)
 (citation "precedence.ml's compare_by (Slug.compare tie-break); no Tabula/Normae text found ranking Sacred Heart above/below the Nativity of John the Baptist at equal band")
 (verdict open)
 (note "2033-06-23 (NativityJohnBaptist) and 2033-06-24 (SacredHeart): the same tie L6 records for grade, IDENTITY axis.")
 (expected_rows 2))

; L8, L9 -- a SECOND, newly-found instance of precedence_of.mli's own
; documented "KNOWN UNIMPLEMENTED FOURTH RULE" (Normae n. 60's own "ad
; proximiorem diem" -- the nearest day, not necessarily the nearest
; FOLLOWING one -- constrained to forward-only search by
; Colitur_kernel.Rite.t.transfer_target's own strictly-later contract).
; That section's own worked example is St Joseph falling exactly ON Palm
; Sunday (Normae n. 56(f), anticipated to 18 March); this is a DIFFERENT
; date shape reaching the SAME underlying limitation. Easter 2035 is 25
; March, putting St Joseph's fixed 19 March on the MONDAY of Holy Week
; (Easter-6, a privileged Tabula I.2 feria, not a Sunday) -- Normae n. 5's
; own "following Monday" rule (keyed to a privileged SUNDAY) does not apply
; here at all, so this falls to n. 60's general rule 3, forward-only on
; colitur's side, landing Joseph on 3 April (Easter+9). litcal's own answer
; anticipates BACKWARD instead, to 17 March -- the Saturday immediately
; before Palm Sunday, a generalisation of n. 56(f)'s own underlying
; principle this task found no primary-source text for -- offered as
; informative evidence of what a fix would need to produce, not as a
; citation substituting for one. NOT fixed here, per this task's own brief.
((id L8)
 (citation "precedence_of.mli's own \"KNOWN UNIMPLEMENTED FOURTH RULE\" (Normae n. 60, n. 56(f)); Colitur_kernel.Rite.t.transfer_target's strictly-later contract")
 (verdict colitur)
 (note "2035-03-17 (StJoseph, grade): a second instance of the documented forward-only transfer_target limitation -- St Joseph impeded by Holy Monday (not Palm Sunday itself) is sent forward to Easter+9 instead of anticipated backward. See L9 for the identity axis.")
 (expected_rows 1))
((id L9)
 (citation "precedence_of.mli's own \"KNOWN UNIMPLEMENTED FOURTH RULE\" (Normae n. 60, n. 56(f)); Colitur_kernel.Rite.t.transfer_target's strictly-later contract")
 (verdict colitur)
 (note "2035-03-17 (StJoseph): the same known limitation L8 records for grade, IDENTITY axis.")
 (expected_rows 1))