diff options
Diffstat (limited to 'lib/rites')
| -rw-r--r-- | lib/rites/rite_ef/precedence_ef.ml | 108 | ||||
| -rw-r--r-- | lib/rites/rite_ef/precedence_ef.mli | 17 |
2 files changed, 118 insertions, 7 deletions
diff --git a/lib/rites/rite_ef/precedence_ef.ml b/lib/rites/rite_ef/precedence_ef.ml index 750da8b..87cdeeb 100644 --- a/lib/rites/rite_ef/precedence_ef.ml +++ b/lib/rites/rite_ef/precedence_ef.ml @@ -48,6 +48,34 @@ let universal_layer = "ef-universal" let indult_prefix = "indult:" let unclassified = max_int +(* Not an RG citation -- an ordering device for RG 91 entry 14's own text + (scan-verified, docs/research/rules-register.md §4): "14. Festa Domini II + classis, PRIMUM MOBILIA, DEINDE FIXA" -- feasts of the Lord, II class, + MOVABLE FIRST, then fixed. Both halves are the SAME numbered table row, + but the primary text states a real priority between them, not merely two + disjoint categories -- [band]'s own entry-14 branches below must not + literally TIE at the shared integer 14, because a tie would fall to + {!Precedence.resolve}'s own kernel-level fallback ([compare_by], + Slug.compare), which is deliberately NOT rubric-authoritative (the exact + anti-pattern RG 113's own fix already corrected once for commemoration + ordering, this file's own header) and would in fact pick the WRONG side + here: "commemoration-of-the-baptism-of-the-lord" sorts before + "ef-time-after-epiphany-sunday-1" alphabetically, backwards from "primum + mobilia". Negative, so it can never collide with any real table position + (1..28) or [unclassified] (positive [max_int]) by construction -- not a + citation to some entry "13.5" that does not exist in the primary text, + just an ordering fact this integer has to carry because RG 91's own two + half-rows must compare unequal here. The one real witness today: Holy + Family (RG 17(b), temporal_ef.ml's own [holy_family_sunday]) against the + fixed Commemoration of the Baptism of the Lord (13 January) -- the only + date they can ever coincide, since Holy Family only ever falls 7-13 + January and no OTHER fixed Class2-Lord sanctoral entry shares that + window (register §6.0's own subject audit: Transfiguration 6 Aug, + Exaltation of the Cross 14 Sep, Dedication of the Archbasilica 9 Nov, + the Purification 2 Feb, the Baptism 13 Jan -- the Baptism alone falls in + Holy Family's own window). *) +let entry_14_movable_band = -14 + let is_indult layer = String.starts_with ~prefix:indult_prefix layer let is_universal layer = String.equal layer universal_layer @@ -223,13 +251,28 @@ let band (ctx : Vocab_ef.season Precedence.context) (c : Vocab_ef.rank Precedenc not the universal layer (11), and marked as an indult overlay (12's "not indult" test having just failed). *) else if (not is_temporal) && (not is_vigil) && rank = Class1 then 13 - (* 14: Feasts of the Lord, II class -- RG 91 entry 14, deliberately - UNQUALIFIED (contrast entry 16, which explicitly says "not - of the Lord"; RG 37c (§4, "Sundays") speaks of "II-class feasts of - the Lord" replacing an occurring II-class Sunday with no universal - qualifier either). No layer test here, unlike 11/12/13 and 16/19/20: - the register does not split this entry into universal/proper/indult, - so a proper or indult feast of the Lord still bands 14, not 19/20. *) + (* 14, MOVABLE half -- RG 91 entry 14's own "primum mobilia, deinde + fixa" ({!entry_14_movable_band}'s own comment has the full citation + and reasoning). Checked before the FIXED half immediately below, + matching the primary text's own order, though [is_temporal] already + makes the two branches structurally disjoint on any one candidate + regardless of which is checked first -- the ordering here is for a + reader following RG 91's own prose, not for correctness. The only + witness this codebase currently constructs is Holy Family + (temporal_ef.ml's own [holy_family_sunday] branch, the one place + [subject] is ever [Lord] on a temporal-origin candidate); a + hypothetical movable Holy-Name-of-Jesus office (RG 17(a), still + unbuilt as its own named day, register §6) would reach this same + branch too, once built, since nothing here is keyed to Holy Family's + own slug. *) + else if is_temporal && rank = Class2 && subject = Subject.Lord then entry_14_movable_band + (* 14, FIXED half -- RG 91 entry 14, deliberately UNQUALIFIED (contrast + entry 16, which explicitly says "not of the Lord"; RG 37c (§4, + "Sundays") speaks of "II-class feasts of the Lord" replacing an + occurring II-class Sunday with no universal qualifier either). No + layer test here, unlike 11/12/13 and 16/19/20: the register does not + split this entry into universal/proper/indult, so a proper or + indult feast of the Lord still bands 14, not 19/20. *) else if (not is_temporal) && (not is_vigil) && rank = Class2 && subject = Subject.Lord then 14 (* 15: Sundays, II class (every Sunday not already named at 6). *) else if is_temporal && rank = Class2 && is_sunday then entry_15_band @@ -732,6 +775,57 @@ let disposition ~(winner : Vocab_ef.rank Precedence.candidate) the RG26 branch above gives its own [not is_vigil] guard, rather than relying on that absence silently. *) Precedence.Omit + else if winner.Precedence.cel.Celebration.subject = Subject.Lord && cel.Celebration.subject = Subject.Lord + then + (* RG 112(a) (docs/research/rules-register.md §4/§6.0, primary text, + verified against BOTH photographic scans -- missale-romanum-1962.pdf + and "Missale Romanum 1962_text.pdf" -- the electronic transcription, + 1962-06-23,_SS_Ioannes_XXIII,_Missale_Romanum,_LT.pdf, carries + NEITHER this paragraph's own worked example NOR its own more + specific Mass-proper rubric below, exactly the transcription's + documented defect, this project's own methodology note): "112. Ad + commemorationes et orationes quod attinet, haec insuper serventur: + a) Officium, Missa aut commemoratio de aliquo festo vel mysterio + UNIUS DIVINAE PERSONAE excludit commemorationem aut orationem de + alio festo vel mysterio EIUSDEM DIVINAE PERSONAE" -- the Office, + Mass, or commemoration of some feast or MYSTERY of ONE Divine Person + excludes a commemoration or oration of ANOTHER feast or mystery of + the SAME Divine Person. + + {!Subject.t} has no finer split within [Lord] than "a mystery + touching the Divine Person of the Son" -- every real [subject = + Lord] entry this codebase's own data carries concerns Christ + specifically (register §6.0's subject audit: the Precious Blood, the + Transfiguration, the Exaltation of the Cross, the Dedication of the + Archbasilica, the Purification, the Baptism, and now Holy Family), + so reading "same Divine Person" as simply "both [Lord]" is safe at + today's data's own granularity -- a rite that ever needed to + distinguish, say, a Trinity-specific mystery from a Son-specific one + by Person would need a finer [Subject.t] first, not a special case + added here. + + The one live witness -- confirmed DIRECTLY, not only by this general + paragraph: the Holy Family Mass propers' own note, immediately + following the Postcommunion, word for word on BOTH photographic + scans: "Si festum S. Familiae occurrerit die 13 ianuarii, Missa + dicitur de festo S. Familiae, SINE COMMEMORATIONE BAPTISMATIS + D.N.I.C., et sine commemoratione dominicae" -- if the feast of the + Holy Family occurs on 13 January, the Mass is said of the Holy + Family, WITHOUT commemoration of the Baptism of Our Lord Jesus + Christ, and without commemoration of the Sunday (RG 17(b)'s own + general rule, restated for this specific date). Independently + confirmed against missalemeum (register §6.0): title "The Holy + Family: Jesus, Mary & Joseph", commemorations [], the Baptism + listed only under "displaced", never commemorated. + + Checked after RG 16(a) above (so a genuine RG 16(a) Sunday- + suppression is never re-explained under this citation instead) and + before the final ordinary-commemoration catch-all below, since + without it a [Feast]-status loser of this shape would otherwise + reach RG 95's ordinary "commemorated or omitted" branch and be + admitted as an ordinary Class2 commemoration under RG 111(b) -- + confirmed wrong against both primary sources above. *) + Precedence.Omit else (* RG 95's other branch: "aut commemorantur aut penitus omittuntur" -- commemorated or wholly omitted. Reached by every SANCTORAL loser diff --git a/lib/rites/rite_ef/precedence_ef.mli b/lib/rites/rite_ef/precedence_ef.mli index b283a17..86a0ead 100644 --- a/lib/rites/rite_ef/precedence_ef.mli +++ b/lib/rites/rite_ef/precedence_ef.mli @@ -62,6 +62,15 @@ val ember_prefixes : string list new rule, not a silently wrong one. *) val unclassified : int +(** RG 91 entry 14's own text (§4): "Festa Domini II classis, primum + mobilia, deinde fixa" -- feasts of the Lord, II class, MOVABLE first, + then fixed. {!band}'s value for the movable half (Holy Family, RG + 17(b)) -- strictly better than the fixed half's own literal [14], + negative so it can never collide with a real table position or + {!unclassified}. See precedence_ef.ml's own comment for the full + citation and why the two halves must not literally tie. *) +val entry_14_movable_band : int + (** [band ctx c]: RG 91's Table of Precedence. Returns the table's own entry number -- I class 1-13, II class 14-21, III class 22-26, IV class 27-28; lower wins (see {!Precedence.rules.band}) -- EXCEPT where the table's own @@ -134,6 +143,14 @@ val sunday_marker : string weekday, never a saint's day, and RG 111(c)/(d) admit an "ordinary" commemoration of a losing SAINT freely, with no such class-keyed gate); + - a loser whose [subject] is [Lord] AND whose WINNER's [subject] is also + [Lord] is [Omit] (RG 112(a) -- a feast or mystery of one Divine Person + excludes a commemoration of another feast or mystery of the SAME + Divine Person; live witness: Holy Family, RG 17(b), excluding the + fixed Commemoration of the Baptism of the Lord on the years 13 + January is itself Holy Family's own date -- see the .ml's own comment + for the primary text, including the Holy Family Mass propers' own + more specific 13-January rubric, on both photographic scans); - everything else -- including an impeded I-class Sunday, and a SANCTORAL loser of any rank below I class -- is [Commemorate], carrying its real RG 109 privilege (see {!admit} below); RG 109(a) |
